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,

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