OpenAlea.Deploy support the installation of OpenAlea packages via the network and manage their dependencies. It is an extension of Setuptools.
Authors : S. Dufour-Kowalski, C. Pradal
Contributors : OpenAlea Consortium
Institutes : INRIA/CIRAD/INRA
Type : Pure Python package
Status : Devel
License : CeCILL-C
OpenAlea.Deploy support the installation of OpenAlea packages via the network and manage their dependencies . It is an extension of Setuptools. The last version is only available for Python 3.
- Additional Features :
- Discover and manage packages in EGG format
- Declare shared libraries directory and include directories
- Call SCons scripts
It doesn't include any GUI interface (See [[packages:compilation_installation:deploygui:deploygui|OpenAlea.DeployGui]] for that).
- Python >= 3.7
- Setuptools
See the [[:download|Download page]].
python setup.py install
Note
OpenAlea.Deploy can be automatically installed with the alea_setup.py script.
To distribute your package with OpenAlea.Deploy, you need to write a setup.py script as you do with setuptools.
- have a look to the Setuptools developer's guide.
- OpenAlea.Deploy add a numerous of keywords and commands
- scons_scripts = [list of Scons scripts] : if not empty, call scons to build extensions
- scons_parameters = [list of Scons parameters] : such as
build_prefix=...
- postinstall_scripts = [list of strings] : Each string corresponds to a python module to execute at installation time. The module may contain a install function
def install():
.- inc_dirs = {dict of dest_dir:src_dir} : Dictionary to map the directory containing the header files.
- lib_dirs = {dict of dest_dir:src_dir} : Dictionary to map the directory containing the dynamic libraries to share.
- share_dirs = {dict of dest_dir:src_dir} : Dictionary to map the directory containing shared data.
- scons : call scons scripts, usage :
python setup.py scons
.
For more information see : python setup.py --help-commands
import sys import os from setuptools import setup, find_packages from os.path import join as pj build_prefix = "build-scons" # Setup function setup( name = "OpenAlea.FakePackage", version = "0.1", author = "Me", author_email = "me@example.com", description = "This is an Example Package", license = 'GPL', keywords = 'fake', url = 'http://myurl.com', # Scons scons_scripts = ["SConstruct"], scons_parameters = ["build_prefix=%s"%(build_prefix)], # Packages namespace_packages = ["openalea"], packages = ['openalea.fakepackage', ], package_dir = { 'openalea.fakepackage': pj('src','fakepackage'), '' : 'src', # necessary to use develop command }, include_package_data = True, zip_safe= False, # Specific options of openalea.deploy lib_dirs = { 'lib' : pj(build_prefix, 'lib'), }, inc_dirs = { 'include' : pj(build_prefix, 'include') }, share_dirs = { 'share' : 'share' }, # Scripts entry_points = { 'console_scripts': [ 'fake_script = openalea.fakepackage.amodule:console_script', ], 'gui_scripts': [ 'fake_gui = openalea.fakepackage.amodule:gui_script',]}, # Dependencies setup_requires = ['openalea.deploy'], )