Biopython 安装

Biopython 安装

我已经安装了 python-biopython 并在我的 python 脚本中成功使用了它,如下所示:

import Bio

但它最终停止工作,现在即使卸载并重新安装后,我也无法使用 python 2.7x 成功导入。我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named Bio

要求的输出:

apt-cache policy python-biopython 的输出:

python-biopython:
  Installed: 1.63-1
  Candidate: 1.63-1
  Version table:
 *** 1.63-1 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
        100 /var/lib/dpkg/status

find $(python -c "import sys; print '\n'.join(sys.path)") -type d -name 'Bio' 的输出:

find: `/home/alex/anaconda/lib/python27.zip': No such file or directory
find: `/home/alex/anaconda/lib/python2.7/lib-old': No such file or directory

python -c "import sys; print '\n'.join(sys.path)" 的输出似乎没有列出 biopython:

/home/alex/anaconda/lib/python27.zip
/home/alex/anaconda/lib/python2.7
/home/alex/anaconda/lib/python2.7/plat-linux2
/home/alex/anaconda/lib/python2.7/lib-tk
/home/alex/anaconda/lib/python2.7/lib-old
/home/alex/anaconda/lib/python2.7/lib-dynload
/home/alex/anaconda/lib/python2.7/site-packages
/home/alex/anaconda/lib/python2.7/site-packages/Sphinx-1.3.1-py2.7.egg
/home/alex/anaconda/lib/python2.7/site-packages/cryptography-0.9.1-py2.7-linux-x86_64.egg
/home/alex/anaconda/lib/python2.7/site-packages/setuptools-18.1-py2.7.egg

apt-cache policy python 的输出:

python:
  Installed: 2.7.5-5ubuntu3
  Candidate: 2.7.5-5ubuntu3
  Version table:
 *** 2.7.5-5ubuntu3 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

答案1

我猜是 Python PATH 的问题。可能你的安装没有在 Biopython 安装文件的目录中查找包。

步骤 1——检查 Python PATH 和 Biopython 安装目录:

请使用以下命令检查 Python 2 的 PATH 设置:

python -c "import sys; print('\n'.join(sys.path))"

根据python-biopython1.64 版本的软件包内容,它将安装Bio软件包目录中的目录/usr/lib/python2.7/dist-packages/,因此如果您的 Python PATH 中缺少此目录,我们已经发现了错误原因。

第 2 步 - 尝试临时修复:

PYTHONPATH您可以在启动解释器之前通过设置 shell 的环境变量将目录添加到 Python PATH 变量中:

PYTHONPATH="/usr/lib/python2.7/dist-packages" python

在此 Python 会话中,您现在应该能够使用 Biopython 包。验证其是否有效后,我们可以继续...

步骤 3-使修复永久生效:

Python 有一个目录,它会在其中查找路径配置文件 ( *.pth)。我们使用以下命令找出安装中的哪个目录:

PythonSiteDir=$(python -c "import site; site._script()" --user-site)
echo $PythonSiteDir

这首先将路径存储在变量中$PythonSiteDir,然后将其输出到终端。 在您的例子中,它可能会显示目录/home/alex/anaconda/lib/python2.7/site-packages,但如果没有,请使用相应的目录。

我们必须将自定义.pth文件放入此目录中,因此首先我们要检查哪些路径配置文件已经存在,以确保不会意外覆盖现有文件。为了避免大量输入,我们使用之前创建的变量:

ls ${PythonSiteDir}/*.pth

此命令显示的所有文件名都已存在,可能未被使用。假设不在biopython_directory.pth列表中,我们现在将创建此文件并让其包含Biopython安装路径:

echo "/usr/lib/python2.7/dist-packages" > ${PythonSiteDir}/biopython_directory.pth

就这些了。现在唯一剩下的就是测试它是否有效。您可以再次开始使用 Biopython,也可以先使用上面的命令检查当前的 Python 路径:

python -c "import sys; print('\n'.join(sys.path))"

步骤 3 的来源/灵感:https://stackoverflow.com/a/12311321/4464570

答案2

我想以评论的形式回答,但我需要一些声誉才能发表评论。所以我在这里写。

我使用现成的 virtualbox qiime 系统。据我所知,在该系统中,QIIME 使用不同的路径设置方法。在“.bashrc”文件中,它使用 activate.sh 类似

source /home/qiime/qiime_software/activate.sh

在 activate.sh 文件中,你可以找到以下行

export PYTHONPATH=/home/qiime/.../:/home/qiime/.../:
/usr/local/lib/python2.7/dist-packages/`

您应该通过在路径后添加“:/usr/local/lib/python2.7/dist-packages/”来编辑文件,然后使用以下命令再次执行该文件

source /home/iime/qiime_software/activate.sh

我从您的问题和答案中找到了解决方案。谢谢。

相关内容