Installing and configuring EMEN2

EMEN2 has a number of dependencies, which are described on the dependencies page. However, because EMEN2 is often used with EMAN2, we have packaged all of the EMEN2 dependencies along with binary builds of EMAN2, which greatly simplifies installation. See the EMAN2 page for information on installing EMAN2 and the notes below. On Linux, we usually install EMAN2 into $HOME/EMAN2; make sure to run EMAN2/eman2-installer and add the EMAN2 init script (EMAN2/eman2.bashrc) to your shell rc (usually $HOME/.profile or $HOME/.bashrc).

Install EMEN2

EMEN2 can be installed using either Python easy_install:

sudo python -m easy_install -U -Z emen2

Note the "-U" flag will upgrade emen2 to the current version if it is already found. The "-Z" flag will prevent EMEN2 from being installed an a ".egg" zip file.

Alternatively, you may install EMNE2 by downloading the source, unpacking, and running the setup.py script:

python ./setup.py build
sudo python ./setup.py install

Note: Installing EMEN2 with EMAN2

If you are using an EMAN2 binary distribution to take care of all the dependencies, you will need to use EMAN2's Python environment on Linux and Windows. On Linux, assuming you installed EMAN2 into $HOME/EMAN2, you would use $HOME/EMAN2/Python/bin/python as the interpreter. This will ensure that the correct dependencies are loaded and EMEN2 is installed in the correct location. On Mac OS X, EMAN2 uses the system default Python environment, so no special action is required. Example:

$HOME/EMAN2/Python/bin/python -m easy_install -U -Z emen2

Creating an EMEN2 database environment

Here is a "quick start" guide to initialize an EMEN2 DB and start the web server. The "-h" argument in the scripts below are references to a directory to keep the EMEN2 DB; the directory will be created if it does not exist.

python -m emen2.db --create -h $HOME/testdb

This will prompt for a "root" email address and password, and create a minimal EMEN2 environment. The email address will be used for password recovery and system messages if a mail server is provided in the configuration. The password can be left empty, but the system will not be secure at all.

You can also quickly access the native Python API, by running the module with the '-i' flag. The "-e" flag specifies a list of extensions to load.

python -i -m emen2.db -h $HOME/testdb -e default,em,eman2,site

To start the EMEN2 web server with default settings:

python -m emen2.web.server -h $HOME/testdb -e default,em,eman2,site

You will be able to access the server at http://localhost:8080

Another way to start the web server is to run it as a Twisted Application, using twistd.

twistd emen2 -h $HOME/testdb -e default,em,eman2,site

This will daemonize emen2, and log all messages to a file. You can specifiy the "-n -o" flags to twistd to prevent daemonization and print the log to stdout.

Finally, if you want to start EMEN2 at system boot, see EMEN2 Startup for details on using the emen2 init script.