可编辑模式安装coolcustom包后无法导入问题求助
排查可编辑模式安装的Python包无法全局导入的问题
问题场景
通过py -3.11 -m pip install -e .以可编辑模式安装自制的coolcustom包后,无法在项目目录外导入该包。
项目结构:
Documents/ ├─ testing_package/ │ ├─ coolcustom/ │ │ ├─ __init__.py │ │ ├─ setup.py │ │ ├─ main.py
setup.py代码:
from setuptools import setup, find_packages setup( name='coolcustom', version='0.1', packages=find_packages(), )
已尝试操作:
- 卸载可编辑版本后正常安装,问题依旧
- 未找到.egg-link文件
- 发现site-packages存在相关安装文件
排查步骤与解决方案
1. 修正项目结构与setup.py位置
这是核心问题:你的setup.py放在了coolcustom/子目录下,而find_packages()默认从执行setup.py的目录开始扫描含__init__.py的子目录。此时它只会扫描coolcustom/内部的子目录,完全忽略了当前目录下的coolcustom包代码。
修复操作:
将setup.py移动到testing_package/根目录,调整后结构:
Documents/ ├─ testing_package/ │ ├─ coolcustom/ │ │ ├─ __init__.py │ │ ├─ main.py │ ├─ setup.py
可选:修改setup.py明确指定要打包的包,避免扫描歧义:
from setuptools import setup, find_packages setup( name='coolcustom', version='0.1', packages=find_packages(include=['coolcustom']), )
2. 验证Python环境一致性
执行以下命令,确认安装包和测试导入用的是同一个Python环境:
- 安装时的环境路径:
py -3.11 -c "import sys; print(sys.executable)" - 项目外测试时的环境路径:
py -3.11 -c "import sys; print(sys.executable)"
如果路径不一致,说明用了不同的虚拟环境或Python版本,需在目标环境重新安装。
3. 检查site-packages中的安装记录
找到Python环境的site-packages目录,查看coolcustom.egg-info或coolcustom.dist-info文件夹:
- 打开
top_level.txt,如果文件为空,说明打包未识别到包内容,回到步骤1修正结构。 - 如果文件内有
coolcustom,继续检查sys.path:
在项目外执行:
确认site-packages目录在py -3.11 -c "import sys; print('\n'.join(sys.path))"sys.path中,同时可编辑模式安装后应有指向项目包的.egg-link文件或路径。
4. 彻底重装包
先完全卸载旧安装:
py -3.11 -m pip uninstall -y coolcustom
然后在testing_package/根目录执行可编辑安装:
py -3.11 -m pip install -e .
最后在项目外测试导入:
py -3.11 -c "import coolcustom; print('导入成功')"
内容的提问来源于stack exchange,提问作者Viktor Veselý
相关产品推荐
相关产品推荐

