Mercurial > repos > wolma > package_python_3_4_x_lean
view tool_dependencies.xml @ 5:83407422ec16 draft default tip
Uploaded
author | wolma |
---|---|
date | Sat, 11 Jun 2016 19:07:41 -0400 |
parents | 5e5653b689ca |
children |
line wrap: on
line source
<?xml version="1.0"?> <tool_dependency> <package name="zlib" version="1.2.8"> <repository changeset_revision="63a4a902cda2" name="package_zlib_1_2_8" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" /> </package> <package name="sqlite" version="3.8.3"> <repository changeset_revision="c8a5c11cc921" name="package_sqlite_3_8_3" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" /> </package> <package name="python3" version="3.4"> <install version="1.0"> <actions> <action type="download_by_url">https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz</action> <action type="set_environment_for_install"> <repository changeset_revision="63a4a902cda2" name="package_zlib_1_2_8" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu"> <package name="zlib" version="1.2.8" /> </repository> <repository changeset_revision="c8a5c11cc921" name="package_sqlite_3_8_3" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu"> <package name="sqlite" version="3.8.3" /> </repository> </action> <action type="shell_command"> # The python build system doesn't check CPATH / C(PLUS)_INCLUDE_PATH which is set by the depended-upon # tool definitions for these sources, but it does check CPPFLAGS / LDFLAGS # Currently not whitespace-safe, I haven't found a way yet to quote the *FLAGS values so that they are # correctly recognized by both the python build process and the compiler. But as galaxy itself isn't # whitespace-safe either it doesn't really matter (currently). oldifs="$IFS" IFS=":" for p in $CPLUS_INCLUDE_PATH do CPPFLAGS="$CPPFLAGS -I$p" done for p in $LD_LIBRARY_PATH do LDFLAGS="$LDFLAGS -L$p" done IFS="$oldifs" export CPPFLAGS export LDFLAGS # Clear variables that may be used in Galaxy's extenal python 2 environment unset PYTHONPATH unset PYTHONHOME echo "Python3 installation: preparing to install ..." \ && ./configure -q --prefix="$INSTALL_DIR" --without-ensurepip \ && echo "Python3 installation: entering build process ..." \ && make -s \ && echo "Python3 installation: installing ..." \ && make -s install </action> <action type="set_environment"> <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable> <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[ZLIB_ROOT_PATH]/lib</environment_variable> <environment_variable action="prepend_to" name="LD_LIBRARY_PATH">$ENV[SQLITE_ROOT_DIR]/lib</environment_variable> <!-- clear PYTHONPATH, otherwise we will get Galaxy's Python 2 libraries in the Python 3 path. --> <environment_variable action="set_to" name="PYTHONPATH">$INSTALL_DIR</environment_variable> <environment_variable action="set_to" name="PYTHONHOME">$INSTALL_DIR</environment_variable> <environment_variable action="set_to" name="PYTHONNOUSERSITE">True</environment_variable> <environment_variable action="set_to" name="SITE_PACKAGES_RELPATH">lib/python3.4/site-packages</environment_variable> <environment_variable action="prepend_to" name="PKG_CONFIG_PATH">$INSTALL_DIR/lib/pkgconfig</environment_variable> </action> </actions> </install> <readme> The Python programming language version 3.4 http://www.python.org A lean build of Python 3.4.x. This package receives bug fixes within the 3.4 release series! Currently, it contains the zlib and sqlite3 modules as the only stdlib modules with external dependencies (handled in here by depending on package_zlib_1_2_8 and package_sqlite_3_8_3). In particular, this build does not compile Python's ssl module (which would cause dependency on openssl and, in turn, on Perl). This means that **the pip installation tool will not be available with this build** !! This version of Python includes a built-in virtual environment manager. To create a Python 3 virtual env, include the following actions in your tool_dependencies.xml, e.g. for a package MY_TOOL_venv: <action type="set_environment_for_install"> <repository name="package_python_3_4_x_lean" owner="wolma"> <package name="python3" version="3.4" /> </repository> <!-- other install time dependencies --> </action> <action type="shell_command"> # Create virtual environment MY_TOOL_venv # pip cannot be used for installation because it depends on ssl, # which this build does not provide python3 -m venv --without-pip $INSTALL_DIR/MY_TOOL_venv # optional: install setuptools if required # install python packages # assuming you are in the download directory of the package $INSTALL_DIR/MY_TOOL_venv/bin/python3 setup.py install </action> <action type="set_environment"> <!-- prepend the bin directory of the virtual environment to PATH --> <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/MY_TOOL_venv/bin</environment_variable> <!-- prepend the site-packages directory of the virtual environment to PYTHONPATH; using SITE_PACKAGES_RELPATH here makes it easy to migrate to a different version of Python --> <environment_variable name="PYTHONPATH" action="prepend_to">$INSTALL_DIR/MY_TOOL_venv/$SITE_PACKAGES_RELPATH</environment_variable> </action> Then, in your MY_TOOL.xml add the following requirements (in that order): <requirements> <requirement name="package" version="3.4">python3</requirement> <requirement name="package" version="XXX">MY_TOOL</requirement> </requirements> For a concrete example look at the tool_dependencies file of: https://toolshed.g2.bx.psu.edu/view/wolma/mimodd </readme> </package> </tool_dependency>