Команда which () может найти исполняемый файл только с ./ - PullRequest
1 голос
/ 09 мая 2020

Я использую pymatgen, у которого есть класс BaderAnalysis (https://github.com/materialsproject/pymatgen/blob/v2020.4.29/pymatgen/command_line/bader_caller.py). Этому классу нужен исполняемый файл с именем bader (двоичный файл из другого источника), поэтому он проверяет, есть ли файл или нет, используя which (). У меня есть файл, и я могу запустить программу bader вручную, но всегда получаю сообщение об ошибке, что файла нет. Если я попробую команду which () вручную, окажется, что она находит ее только с префиксом ./

print(which('bader'))
print(which('./bader'))

Вывод: Нет

. / Bader

Как Могу я сделать так, чтобы какая команда находила его без префикса? (потому что класс pymatgen буквально запускает if not which("bader") or which("bader.exe"): 'error message...' при инициализации класса.

1 Ответ

1 голос
/ 09 мая 2020

Вам нужно будет добавить текущий каталог в переменную окружения PATH. Вы можете сделать это при вызове программы. Например,

PATH=$PATH:$PWD python my_script.py
...