我正在尝试查看shutil.which()是否可以从NCBI的BLAST中找到blastn命令。在我的终端上运行which blastn会导致/usr/local/bin/blastn。但是,如果我执行shutil.which("blastn"),它只返回None。搜索Python运行良好,因为shutil.which("python")返回/usr/bin/python。为什么会发生这种情况?
发布于 2020-04-17 13:29:00
这意味着shell中的环境与Python运行时中的环境具有不同的路径。有许多可能的原因,但它通常会发生,因为您的.bashrc中的某些内容会附加到PATH中,这将在shell中看到,但不会被Python看到。
要在shell中检查环境,请执行以下操作:
$ echo $PATH要使用Python检查环境,请执行以下操作:
import os
print(os.environ["PATH"])您可能会发现,shell的环境在PATH中的位置为blastn,而Python的环境中没有。
https://stackoverflow.com/questions/61264364
复制相似问题