Script работает в PyCharm, но не из командной строки
Когда я пытаюсь запустить свою программу из PyCharm IDE, все работает отлично, но если я наберу Fedora:
python myScript.py
в командной строке я получаю ошибку импорта из 1 модуля.
ImportError : No modue named myDependency
Что делает PyCharm, что позволяет интерпретатору находить мои зависимости при запуске из среды IDE? Как я могу получить script, чтобы найти его зависимости, чтобы его можно было запустить с помощью одной команды?
Ответы
Ответ 1
Есть несколько возможных вещей, которые могут быть причиной этого:
- Тот же интерпретатор python? Проверьте с помощью
import sys; print(sys.executable)
- Это тот же рабочий каталог? Проверьте с помощью
import os; print(os.getcwd())
- Несоответствия в
sys.path
, которые представляют собой список python для поиска последовательно для мест импорта, могут быть вызваны переменными окружения. Проверьте с помощью import sys; print(sys.path)
.
Ответ 2
В качестве первого шага в PyCharm перейдите к настройкам проекта/интерпретатору python и обратите внимание на путь. Затем сравните это с результатом which python
- они выстраиваются в линию? Если нет, вам нужно заставить их это сделать.
Если это нормально, проверьте, что PyCharm определяет в качестве корня проекта в настройках проекта/структуре проекта. Это каталог, в котором находится ваш script? Если нет, вы должны запустить script из этого каталога или добавить каталог в переменную $PYTHONPATH
.
Почти определенно, это одна из двух вещей.
Ответ 3
Возможно, вы установили некоторую зависимость проекта в Pycharm для модуля myDependency.
Вы можете получить доступ к тому же в Fedora, явно импортируя модуль или создав яйцо этого модуля и установив его.
Затем он перейдет на сайт-пакеты python, откуда вы можете ссылаться на эту зависимость.