3211-支持的 Python 版本
编译:沈维燕
原文:https://docs.galaxyproject.org/en/master/admin/python.html
Galaxy 的核心功能目前支持 Python >=3.7。
如果 Galaxy 排斥你正在使用的 Python 版本:
- 完全删除 Galaxy 使用的 Python virtualenv(可以使用
GALAXY_VIRTUAL_ENV
环境变量配置,默认为.venv
),例如:rm -rf /path/to/galaxy/.venv
。 - 如果您在 conda 环境中使用 Python(可以使用
GALAXY_CONDA_ENV
环境变量进行配置,默认为_galaxy_
),请将其删除,例如:conda env remove -n _galaxy_
。 - 让 Galaxy 知道要使用哪个 Python 的方法有以下几种:
- 如果您想从 conda 使用 Python,只需激活
base
环境,Galaxy 将为自己创建一个新的 conda 环境。 -
否则:
- 确保安装了受支持的 Python 版本。
- 验证您要使用的 Python 解释器是否位于
which -a python3 python
输出中的第一个位置(如果您使用的是 Galaxy <=19.09,则为which -a python
)。如果不是这种情况: - 如果您使用的是 Galaxy >= 20.01,只需执行:
export GALAXY_PYTHON=/path/to/python
。 - 如果你使用的是较旧版本的 Galaxy,你可以操控你的 shell 的
PATH
变量,将正确的版本置于首位。你可以通过创建一个新目录,将 python 的符号链接添加到其中,并将该目录置于 PATH 的最前面来完成此操作:% mkdir ~/galaxy-python % ln -s /path/to/python ~/galaxy-python/python % export PATH=~/galaxy-python:$PATH
-
从 Python 2 升级时,删除已编译的
mako
模板:这些模板将在启动 Galaxy 时自动重新生成。% rm -rf /path/to/galaxy/database/compiled_templates/
-
再次启动 Galaxy。
注意
如果您从源代码编译自己的 Python 解释器,请确保构建了 ssl
、sqlite3
、curses
和 bz2
模块,并且安装后可导入。这些 “额外” 模块是在编译过程的最后阶段构建的,并且是 Galaxy 框架所需的。如果在 Linux 上进行编译,您可能需要安装适用于 OpenSSL 和 Bzip2 的 -dev
包。您可能还需要使用共享库 (--enable-shared
) 构建 Python。