Скрипт работает в PyCharm, но не из командной строки

Когда я пытаюсь запустить мою программу из PyCharm IDE, все работает нормально, но если я набираю в Fedora:

python myScript.py

в командной строке я получаю ошибку импорта из 1 модуля.

ImportError : No modue named myDependency

Что делает PyCharm, что позволяет интерпретатору находить мои зависимости при запуске из IDE? Как я могу заставить свой скрипт найти его зависимости, чтобы он мог быть запущен одной командой?

4 ответа

Решение

Есть несколько возможных причин, которые могут быть причиной этого:

  1. Тот же интерпретатор Python? Проверить с import sys; print(sys.executable)
  2. Это тот же рабочий каталог? Проверить с import os; print(os.getcwd())
  3. Расхождения в sys.path, который является списком, который Python последовательно ищет для местоположений импорта, может быть вызвано переменными среды. Проверить с import sys; print(sys.path),

Добавление этого сработало для меня:

from os import sys, path
sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))

В качестве первого шага в PyCharm перейдите к настройкам проекта / интерпретатору python и отметьте путь. Затем сравните это с результатом which python - они выстраиваются? Если нет, вам нужно заставить их сделать это.

Если все в порядке, проверьте, что PyCharm определяет как корень вашего проекта в настройках проекта / структуре проекта. Это каталог, в котором находится ваш скрипт? Если нет, вы должны запустить скрипт из этого каталога или добавить каталог в $PYTHONPATH переменная.

Почти наверняка, это одна из тех двух вещей.

Вы могли бы установить некоторую зависимость проекта в Pycharm для модуля myDependency. Вы можете получить к ним доступ в Fedora, явно импортировав модуль или создав яйцо этого модуля и установив его. Затем он перейдет к сайт-пакетам Python, откуда вы можете ссылаться на эту зависимость.

Другие вопросы по тегам