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'],
)