Почему shutil.which (*) Python не работает? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь проверить, работает ли shutil.which() для поиска команды blastn из BLAST NCBI. Запуск which blastn на моем терминале приводит к /usr/local/bin/blastn. Однако, если я сделаю shutil.which("blastn"), он просто вернет None. Поиск Python работает нормально, так как shutil.which("python") возвращает /usr/bin/python. Почему это происходит?

1 Ответ

2 голосов
/ 17 апреля 2020

Это означает, что среда в вашей оболочке имеет другой путь, чем среда в среде выполнения Python. Есть много возможных причин, но обычно это происходит потому, что что-то в вашем .bashrc добавляется к PATH, что будет видно в оболочке, но не Python.

Чтобы проверить среду в оболочке:

$ echo $PATH

Чтобы проверить среду в Python:

import os
print(os.environ["PATH"])

Вероятно, вы обнаружите, что среда оболочки имеет местоположение blastn в PATH и Python 'hasn' т.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...