Home | Download/Install | Documentation | Packages | Screenshots | News | Forum/Mailing-lists | Contact | GForge

Development environment

This document presents the software requirements to develop OpenAlea packages. The needed softwares/libraries are :

General requirements

Base

For C++ development

For documentation generation

For tests

For GUI creation

Linux specific requirements

  • Install GCC and lib C++
  • Use distribution installation tools to get the different packages (urpmi, yum, apt-get)

Windows specific requirements

OpenAlea provide developpers packages for windows (QT4, Scons, MinGW, Boost) . See Download/Install section.

How to develop a package without installing it ?

In normal installation OpenAlea packages are installed in the python site-packages directory.

During development, to avoid to reinstall every time the packages, you can simulate a virtual installation of the packages.

Pure Python and Python/C++ packages

If you use OpenAlea.Deploy>=0.4.1, you can use the setup.py develop command:

python setup(-egg).py develop [--install-lib=~/my_site_package]

This command simulate python installation without copying the python files. It must be executed only one time.

The optional –install-lib allows to specify a local site-package (you need to modify your PYTHONPATH accordingly). This option is usefull under unix system without Root privileges.

Usage:

  • When the developer changes the python code, the changes are automatically take into account.
  • When the developer changes the c++ code, he must executes only the scons command

scons

IMPORTANT
  • If your sources are in a src directory (which is usually the case), add in the setup.py
package_dir = {'' : 'src', ...} 

How to install a package without Root privileges it

You have a Python environment version >= 2.6.0 : user site-package

Starting with Python 2.6.0, it is possible to install Python packages in a user place (as opposed to system space needing administrator privileges). http://www.python.org/dev/peps/pep-0370/

Installation of packages without administrator privileges

It is possible to add a command to all your setup.py commands:

python multisetup [mode] --prefix=~/.local

A better solution is to create a .pydistutils.cfg in your HOME directory. Add the lines:

[install]
prefix=~/.local

And modify your .bashrc:

export LD_LIBRARY_PATH=$HOME/.local/lib:$LD_LIBRARY_PATH
export PATH=$HOME/.local/bin:$PATH

You do not need to modify the PYTHONPATH, because you use the user site-package.

For openalea (pure python)
$ cd go/to/your/openaleadir
$ python multisetup [mode] --prefix=/home/<user>/.local

Once OpenAlea.Deploy is installed, set the directory where all the dynamic libraries will be installed:

$ alea_config --install-dyn-lib=/home/<user>/.local/lib
For vplants (binary+python)

For some projects that yield dynamic libraries, like vplants try this:

$ cd go/to/your/vplantsdir
$ python multisetup [mode]

Where mode is “install,develop,etc…”

Python Virtual environment

To avoid to have some version conflict between the installed packages and the developed packages, you can use a separate virtual python installation. This is possible with virtualenv.

Virtual env can also be used when you want to install locally your python libraries.

Install virtualenv
$ easy_install virtualenv
Create an environment
$ virtualenv local_python
Activate the environment
$ source local_python/bin/activate

How to compile PyQT4 on Windows

Download lastest QT version.

http://www.trolltech.com/developer/downloads/qt/windows

Install QT with MinGW (in c:\MinGW)

Download SIP And PyQt4 and unzip

http://www.riverbankcomputing.co.uk/sip/download.php

http://www.riverbankcomputing.co.uk/pyqt/download.php

SIP

In a console :

  > c:\python25\python configure.py -p win32-g++
  > c:\MinGW\bin\mingw32-make
  > c:\MinGW\bin\mingw32-make install
 
 

PyQt4:

  > c:\Qt\4.x.x\bin\qtvars.bat
  > c:\python25\python configure.py
  > c:\MinGW\bin\mingw32-make

Add To PATH env c:\Qt\4.x.x\bin

 
documentation/package/development_environment.txt · Last modified: 2010/02/18 23:04 by user   Back to top
INRIA   INRA     CIRAD     AGROPOLIS
INRIA GForge RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki