1-支持的 Python 版本

编译:沈维燕
原文:https://docs.galaxyproject.org/en/master/admin/python.html

Galaxy 的核心功能目前支持 Python >=3.7。

如果 Galaxy 排斥你正在使用的 Python 版本:

  1. 完全删除 Galaxy 使用的 Python virtualenv(可以使用 GALAXY_VIRTUAL_ENV 环境变量配置,默认为 .venv ),例如: rm -rf /path/to/galaxy/.venv
  2. 如果您在 conda 环境中使用 Python(可以使用 GALAXY_CONDA_ENV 环境变量进行配置,默认为 _galaxy_),请将其删除,例如: conda env remove -n _galaxy_
  3. 让 Galaxy 知道要使用哪个 Python 的方法有以下几种:
  4. 如果您想从 conda 使用 Python,只需激活 base 环境,Galaxy 将为自己创建一个新的 conda 环境。
  5. 否则:

    • 确保安装了受支持的 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
      
  6. 从 Python 2 升级时,删除已编译的 mako 模板:

    % rm -rf /path/to/galaxy/database/compiled_templates/
    
    这些模板将在启动 Galaxy 时自动重新生成。

  7. 再次启动 Galaxy。

注意

如果您从源代码编译自己的 Python 解释器,请确保构建了 sslsqlite3cursesbz2 模块,并且安装后可导入。这些 “额外” 模块是在编译过程的最后阶段构建的,并且是 Galaxy 框架所需的。如果在 Linux 上进行编译,您可能需要安装适用于 OpenSSL 和 Bzip2 的 -dev 包。您可能还需要使用共享库 (--enable-shared) 构建 Python。