which() 命令只能通过 ./ 找到可执行文件
which() command can find executable only with ./
我正在使用 pymatgen,它有一个 class BaderAnalysis (https://github.com/materialsproject/pymatgen/blob/v2020.4.29/pymatgen/command_line/bader_caller.py)。
class 需要一个名为 bader 的可执行文件(来自其他来源的二进制文件),因此它使用 which() 检查文件是否存在。
我确实有文件,我可以手动 运行 bader 程序,但我总是得到文件不存在的错误。
如果我手动尝试 which() 命令,结果发现它只找到前缀为 ./
的它
print(which('bader'))
print(which('./bader'))
输出:
None
./bader
如何使which命令在没有前缀的情况下找到它? (因为pymatgen class 字面意思 运行s if not which("bader") or which("bader.exe"): 'error message...'
在初始化的时候 class.
您需要将当前目录添加到 PATH
环境变量中。您可以在程序调用中执行此操作。例如,
PATH=$PATH:$PWD python my_script.py
我正在使用 pymatgen,它有一个 class BaderAnalysis (https://github.com/materialsproject/pymatgen/blob/v2020.4.29/pymatgen/command_line/bader_caller.py)。 class 需要一个名为 bader 的可执行文件(来自其他来源的二进制文件),因此它使用 which() 检查文件是否存在。 我确实有文件,我可以手动 运行 bader 程序,但我总是得到文件不存在的错误。 如果我手动尝试 which() 命令,结果发现它只找到前缀为 ./
的它print(which('bader'))
print(which('./bader'))
输出: None
./bader
如何使which命令在没有前缀的情况下找到它? (因为pymatgen class 字面意思 运行s if not which("bader") or which("bader.exe"): 'error message...'
在初始化的时候 class.
您需要将当前目录添加到 PATH
环境变量中。您可以在程序调用中执行此操作。例如,
PATH=$PATH:$PWD python my_script.py