pip install -e успешно, импорт не удался: ModuleNotFoundError
Я пытаюсь установить модуль, который я разрабатываю. Когда я использую 'pip install -e.', Он выводит 'Успешно установленную gym-mabifish', но когда я пытаюсь импортировать модуль с помощью 'import gym_mabifish', я получаю 'ModuleNotFoundError: Нет модуля с именем' gym_mabifish"'.
Вот структура пакета:
gym-mabifish/
setup.py ( https://pastebin.com/1wNykyKw )
gym_mabifish/
__init__.py ( https://pastebin.com/GtQid3Nk )
envs/
__init__.py ( https://pastebin.com/Txfk0ezE )
mabifish_env.py ( https://pastebin.com/g50zBbus )
Я использую random_agent из тренажерного зала OpenAI, чтобы проверить его. ( https://pastebin.com/72LETtxd)
Пакет показан в списке пунктов:
gym-mabifish (0.0.1, x:\path\to\project\gym-mabifish)
1 ответ
Скорее всего, у вас есть две (или более) установки Python, и ваш pip
а также python
приходят из разных установок.
В идеале вы хотите решить эту проблему. Но в некоторых случаях это очень сложно. В Windows управление PATH может быть кошмаром. В macOS, если вы устанавливаете второй Python 2.7 вместе с предустановленным Apple Python 2.7 (который не поставляется с pip
), все становится запутанным.
Итак, официально рекомендуемое решение в настоящее время состоит в том, чтобы просто использовать -m
флаг для запуска pip с помощью команды, которую вы обычно используете для запуска Python.
Все, что ниже, относится к началу 2018 года. За последние несколько лет оно несколько раз менялось и вполне может измениться в будущем, поэтому всегда лучше перейти прямо к установке модулей Python в документах или к Руководству пользователя по пакетированию Python. Но в качестве резюме:
В идеале вы используете виртуальную среду, в этом случае это просто python
, Но если нет:
- Windows:
py
- * nix:
python
только если вы явно используете то, что поставляется с вашей ОС / дистрибутивом по умолчанию.python3
если вы используете 3.x на * nix] ( https://www.python.org/dev/peps/pep-0394/)python2.7
если вы используете Apple по умолчанию Python 2.7 на macOS.python2
если вы используете любой другой 2.x на *nix.
Так, например, в Windows это должно быть:
py -m pip install gym-mabifish
... а затем, когда вы запустите свой скрипт, как это:
py myscript.py
... он сможет import gym_mabifish
,