首页 > 解决方案 > 为什么即使我安装了 setuptools,`pip install -e` 也会给我一个“没有名为 'setuptools' 的模块”错误?

问题描述

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

我有一个最小的setup.py

import setuptools

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

有关如何解决此问题并将我的包安装为可编辑状态的任何建议?我还查看了这个堆栈溢出问题,但没有找到适合我的情况的答案。

完整的错误回溯如下:

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安装可编辑包需要 a 。

标签: pythonpipconda

解决方案


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

1

2

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


推荐阅读