【问题标题】:Why does `pip install -e` give me a "no module named 'setuptools'" error even though I have setuptools installed?为什么即使我安装了 setuptools,`pip install -e` 也会给我一个“没有名为 'setuptools' 的模块”错误?
【发布时间】:2021-05-10 17:20:24
【问题描述】:

我正在尝试通过pip install -e 在 conda 环境中将一个正在进行中的包安装为可编辑包,但我得到一个“没有名为 'setuptools' 的模块”,即使我已验证 setuptools 是正确的安装在环境中(我可以在环境中的python会话中导入它)。

我有一个最小的setup.py

import setuptools

if __name__ == "__main__":
    setuptools.setup()

有关如何解决此问题并将我的包安装为可编辑状态的任何建议?我也查看了this stack overflow question,但没有找到适合我的情况的答案。

完整的错误回溯如下:

ERROR: Command errored out with exit status 1:
     command: /nfs/nhome/live/jbhagat/.conda/envs/aeon_env/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/ceph/aeon/aeon/code/ProjectAeon/aeon/setup.py'"'"'; __file__='"'"'/ceph/aeon/aeon/code/ProjectAeon/aeon/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
         cwd: /ceph/aeon/aeon/code/ProjectAeon/aeon/
    Complete output (3 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    ModuleNotFoundError: No module named 'setuptools'

编辑更新:有趣的是,如果我注释掉 setup.py 文件中的所有行,我会收到同样的错误。如果我删除我的setup.py,我会收到一条错误消息,指出安装可编辑包需要setup.py

【问题讨论】:

  • 运行 pip install setuptools 时会收到什么消息
  • “要求已经满足”,它指向它应该在我的 conda env 中的位置
  • 相关,可能有用:stackoverflow.com/q/14426491.

标签: python pip conda


【解决方案1】:

我仍然不确定到底发生了什么,但它似乎与 pip 相关。这是我发现的两种相关情况:

1

2

我的解决方案是使用 python setup.py develop 而不是 pip install -e :这会在我的站点包目录中设置一个 .egg 链接,该链接指向我的项目代码目录以允许导入,这对我来说已经足够好了.

【讨论】:

    猜你喜欢
    • 2018-05-24
    • 2017-08-26
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 2018-07-13
    • 2018-07-12
    • 1970-01-01
    • 2013-11-19
    相关资源
    最近更新 更多