setup.py develop可用但pip install -e报错:TypeError: 'module'对象不可调用
Setuptools
develop弃用后pip install -e报错排查 问题描述
Setuptools已弃用develop命令,官方推荐使用pip install -e替代,但实际使用中前者可正常运行,后者执行后触发以下报错:
TypeError: 'module' object is not callable
报错触发逻辑:代码中执行from my_pkg import MyClass后,尝试实例化MyClass(),项目根目录的__init__.py内容为from .myclass import MyClass。
异常现象汇总
- 问题无稳定重现规律:复制项目文件并重命名库可临时解决报错;此前重装虚拟环境也曾解决,但当前该方法已失效
- 报错场景受限:之前可在终端
python交互环境中重现,现在仅在执行pytest tests/、运行tests/test_stuff.py内的test_example()测试函数时出现;若将MyClass()实例化代码放在测试函数外则无报错 - 环境特性:使用Anaconda虚拟环境,混合pip与conda安装依赖,项目其他功能均正常
- 项目配置:采用包含
requires字段的pyproject.toml,搭配基础的setuptools.setup配置 - 异常路径指向:执行
warnings.warn(MyClass)时,输出指向不存在的文件路径../my_pkg/MyClass/__init__.py
已尝试的排查操作
- 执行
conda clean --all清理Anaconda缓存 - 执行
pip cache remove *、pip cache purge清理pip缓存
环境版本信息
Python 3.10.4、Windows 10、setuptools 65.5.0、pytest 7.2.0
疑问
这是否为已知问题?有哪些可能原因?该如何调试?
内容的提问来源于stack exchange,提问作者OverLordGoldDragon
相关产品推荐
相关产品推荐

