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, откуда вы можете ссылаться на эту зависимость.