pip install -e успешно, импорт не удался: ModuleNotFoundError - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь установить модуль, который разрабатываю.Когда я использую '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 Ответ

0 голосов
/ 31 мая 2018

Скорее всего, у вас есть две (или более) установки Python, а ваши pip и python происходят из разных установок.

В идеале вы хотите решить эту проблему.Но в некоторых случаях это очень сложно.В Windows управление PATH может быть кошмаром.В macOS, если вы устанавливаете второй Python 2.7 вместе с предустановленным Apple Python 2.7 (который не поставляется с pip), все становится запутанным.

Итак, официально рекомендуемое решение в настоящее время заключается в используйте флаг -m для запуска pip, используя любую команду, которую вы обычно используете для запуска Python .

Все, что ниже, относится к началу 2018 года. За последние несколько лет оно несколько раз менялось и вполне может измениться в будущем, поэтому всегда лучше перейти прямо к Установка модулей Python в документации или Руководство пользователя по Python Packaging .Но в заключение:

В идеале вы используете виртуальную среду, в этом случае это просто 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.

...