为什么 Python 的 shutil.which() 不起作用?
Why is Python's shutil.which() not working?
我正在尝试查看 shutil.which()
是否可以从 NCBI 的 BLAST 中找到 blastn
命令。 运行 which blastn
在我的终端上的结果是 /usr/local/bin/blastn
。但是,如果我做 shutil.which("blastn")
,它只是 returns None
。搜索 Python 效果很好,因为 shutil.which("python")
returns /usr/bin/python
。为什么会这样?
这意味着您的 shell 中的环境与 Python 运行时中的环境具有不同的 PATH。可能的原因有很多,但通常会发生,因为 .bashrc
中的某些内容附加到 PATH,这将在 shell 中看到,但不会被 Python.
看到
检查shell中的环境:
$ echo $PATH
检查Python中的环境:
import os
print(os.environ["PATH"])
您可能会发现 shell 的环境在 PATH 中有 blastn
的位置,而 Python 的没有。
我正在尝试查看 shutil.which()
是否可以从 NCBI 的 BLAST 中找到 blastn
命令。 运行 which blastn
在我的终端上的结果是 /usr/local/bin/blastn
。但是,如果我做 shutil.which("blastn")
,它只是 returns None
。搜索 Python 效果很好,因为 shutil.which("python")
returns /usr/bin/python
。为什么会这样?
这意味着您的 shell 中的环境与 Python 运行时中的环境具有不同的 PATH。可能的原因有很多,但通常会发生,因为 .bashrc
中的某些内容附加到 PATH,这将在 shell 中看到,但不会被 Python.
检查shell中的环境:
$ echo $PATH
检查Python中的环境:
import os
print(os.environ["PATH"])
您可能会发现 shell 的环境在 PATH 中有 blastn
的位置,而 Python 的没有。