【问题标题】:pip install -e successful, import fails: ModuleNotFoundErrorpip install -e 成功,导入失败:ModuleNotFoundError
【发布时间】:2018-05-31 00:53:21
【问题描述】:

我正在尝试安装我正在开发的模块。当我使用 'pip install -e .' 时,它会输出 'Successfully installed gym-mabifish' 但是当我尝试使用 'import gym_mabifish' 导入模块时,我得到 'ModuleNotFoundError: No module named "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 )

我正在使用 OpenAI gym 的 random_agent 来测试它。 (https://pastebin.com/72LETtxd)

包显示在pip列表中:

gym-mabifish (0.0.1, x:\path\to\project\gym-mabifish)

【问题讨论】:

  • 您确定您的pip 和您的python 都来自同一个Python 版本吗?例如,macOS 用户遇到的一个常见情况是他们安装了第二个 Python,它在 PATH 上比预安装的 Apple Python 低,因此python 运行 Apple 的 Python,但 Apple 的 Python 不附带 pip,所以pip 为其他 Python 安装包。
  • 我没有使用“pip install”,而是使用了“python -m pip install”,它似乎可以正常工作。您想将您的评论复制到答案中以便我标记它吗?

标签: python pip openai-gym


【解决方案1】:

很可能,您有两个(或更多)Python 安装,而您的 pippython 来自不同的安装。

理想情况下,您想解决该问题。但在某些情况下,这是非常困难的。在 Windows 上,管理 PATH 可能是一场噩梦。在 macOS 上,如果您在 Apple 预安装的 Python 2.7(pip 不附带)旁边安装第二个 Python 2.7,事情就会变得混乱。

所以,现在官方推荐的解决方案是use the -m flag to run pip using whichever command you normally use to run Python

以下所有内容均截至 2018 年初。在过去几年中已更改了几次,并且将来可能会再次更改,因此最好直接访问文档中的 Installing Python Modules 或 @987654323 @。但作为总结:

理想情况下,您使用的是虚拟环境,在这种情况下,这只是python。但如果不是:

  • Windows:
    • py
  • *nix:
    • python 仅当您明确使用操作系统/发行版随附的任何内容作为默认设置时。
    • python3 如果您在 *nix 上使用 3.x](https://www.python.org/dev/peps/pep-0394/)
    • python2.7 如果您在 macOS 上使用 Apple 的默认 Python 2.7。
    • python2 如果您在 *nix 上使用任何其他 2.x。

因此,例如,在 Windows 上,它应该是:

py -m pip install gym-mabifish

…然后当你像这样运行你的脚本时:

py myscript.py

……它可以import gym_mabifish

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 2015-12-22
    • 2012-09-24
    • 2018-10-11
    • 2015-05-05
    • 2021-03-16
    • 1970-01-01
    相关资源
    最近更新 更多