Compiling instructions

This page should help novice users run Bitmessage from the source code files.

= setuptools =

This is now the recommended and in most cases the easiest procedure for installing PyBitmessage. There is also a helper script to resolve dependencies easily.

Go to the directory with PyBitmessage source code and run:

python checkdeps.py

If there are missing dependencies, it will explain you what is missing and for many Unix-like systems also what you have to do to resolve it. How you then run setuptools depends on whether you want to install it to user's directory or system.

As normal user:

python setup.py install --user ~/.local/bin/pybitmessage

or as root:

python setup.py install /usr/local/bin/pybitmessage

If it doesn't work out, you can follow the more detailed description below.

= Linux =

Download and run PyBitmessage

 * 1) Download the source code from github:


 * 1) Run PyBitmessage:

Check the wiki for more information on how to run Bitmessage as a daemon.

If you receive a warning that you need to use python 2.7.3 or greater, and have followed the above instructions to upgrade it, your system may be attemping to run PyBitmessage with python 3. In this case, run

Upgrading
To upgrade Bitmessage run the following commands:

= OS X =

With Homebrew package manager
First, make sure you have not already installed Macports. Having both macports and homebrew on the same system is a recipe for disaster. Install Homebrew: ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
 * Setup

brew install python
 * Update Python:

brew install pyqt openssl
 * Install dependencies:

cd ~/Desktop git clone git://github.com/Bitmessage/PyBitmessage.git cd PyBitmessage python src/bitmessagemain.py
 * Download and run

With macports package manager
First, make sure you have not already installed Homebrew. Having both macports and homebrew on the same system is a recipe for disaster. Installing with macports or homebrew essentially has the same effect. Homebrew does some things better than ports, and ports does some things better than brew. If old-school floats your boat, these instructions are for you.

Read the instructions or take this as a reminder: Apple's XCode and their Command Line Tools are a prerequiste for Macports, go: https://www.macports.org/install.php
 * Select the macports installation that is right for your version of osx

sudo port install python27 py27-pyqt4 openssl sudo port install git-core +svn +doc +bash_completion +gitweb
 * Install dependencies and needed tools

cd ~/Desktop git clone git://github.com/Bitmessage/PyBitmessage.git cd PyBitmessage python2.7 src/bitmessagemain.py
 * Download and run

= Windows =
 * 1) Download and install the latest revision of Python 2.7 (currently Python 2.7.10 from here). The Windows x86 MSI Installer is the right choice for most people. (64-bit users may want the 64-bit version).
 * 2) Test that it installed:
 * 3) Open a command prompt by going to Start > Run. Type 'cmd' then press enter.
 * 4) type 'python'. If python is installed, you should see the python version and the prompt: '>>>'
 * 5) If you see a message such as: "'Python is not recognized as an internal or external command..." then you must add the python path to your path environmental variable:
 * 6) Find the location where Python was installed (in particular, the location where python.exe exists). It might simply be in c:\Python2.7
 * 7) Follow these directions to add the Python path to your path variable.
 * 8) Close the command prompt window and reopen it.
 * 9) Try running 'python' again.
 * 10) Press Ctrl-Z to exit Python.
 * 11) Download PyQt from here.   PyQt is one of Bitmessage's two dependencies. Look for the links to downloads under the heading labeled "Binary Package;" the binary package versions are already compiled for you. Select the version for Python 2.7 (look for "Py2.7" in the file name). Install PyQt.
 * 12) Download OpenSSL from here. OpenSSL is the second of Bitmessage's two dependencies.  Install OpenSSL.  If an error message appears during installation of OpenSSL, download and install Visual C++ 2008.  A link is provided on the OpenSSL download page.
 * 13) Download the source code for PyBitmessage from GitHub. If it is in a zip file, you will need to extract it. There should be a few files and a few folders where one of the folders is 'src'.
 * 14) To run Bitmessage, navigate into the 'src' folder and then double click on the bitmessagemain.py file, or in a command prompt, change directories to the 'src' directory which holds bitmessagemain.py and type 'python bitmessagemain.py'.

If you change user interface files
You can use Qt's Designer application to modify the user interface. After you do this, you will need to 'compile' .ui files into .py files.
 * 1) In a command prompt, change directories to the directory of your .ui file.
 * 2) Run 'pyuic4 example.ui > example.py'  If you get a message similar to 'pyuic4 is not recognized as an internal or external command' then you must add the PyQt directory to your system's path variable. This directory should hold pyuic4.bat. It might be in C:\Python27\Lib\site-packages\PyQt4. Remember to close the command window and reopen it after you change your path variable.

If you add icons to bitmessage_icons.qrc, then you must run this command: pyrcc4 bitmessage_icons.qrc -o bitmessage_icons_rc.py

Optional: Compile into a stand-alone EXE
This won't include the OpenSSL DLL file in the EXE; if you send it to someone who doesn't have OpenSSL installed, it will not run. To include the DLL file in the EXE, you must follow these steps:
 * 1) Download and install PyWin32
 * 2) Download PyInstaller.
 * 3) Copy Bitmessage's 'src' directory to the PyInstaller directory (which contains pyinstaller.py).
 * 4) Run 'pyinstaller.py --onefile --noconsole --icon="src\images\can-icon.ico" src\bitmessagemain.py'
 * 1) After following the steps above, you will see that pyinstaller created a folder called bitmessagemain. In that folder is a file: bitmessagemain.spec. Open it with a text editor.
 * 2) Below the line "a.datas," add this line:
 * 3) Optionally also include the translations by modifying this file further by adding the lines shown in this example file.
 * 4) Save and close
 * 5) Run this command: pyinstaller.py bitmessagemain/bitmessagemain.spec

If you do not have the libeay32.dll you can download it here. http://www.dll-files.com/dllindex/dll-files.shtml?libeay32