Python自定义look_up模块执行develop安装后导入失败求助
排查Python模块导入失败的问题
看起来你遇到的核心问题是Python模块命名规范冲突,再结合几个配置细节,导致安装后无法正常导入模块。咱们一步步来定位修复:
1. 包目录名称违反Python规范
Python的模块/包名称不允许包含连字符(-),你的项目里子包目录叫look-up,这本身就会导致Python无法识别它为合法模块——这是最关键的问题。
修复:重命名包目录
把根目录下的子目录look-up改成look_up(将连字符替换为下划线),修改后的项目结构应该是:
look-up/ ├── look_up/ │ ├── utilities/ │ │ ├── __init__.py │ │ ├── validator.py │ └── __init__.py ├── README.md ├── requirements.txt ├── setup.py └── MANIFEST.in
2. 优化setup.py配置(可选但更稳妥)
你的setup.py基础配置没问题,但可以显式指定要包含的包,避免find_packages()漏检子模块。修改后的setup.py可以是:
from setuptools import setup, find_packages from codecs import open from os import path here = path.abspath(path.dirname(__file__)) with open(path.join(here, 'README.md'), encoding='utf-8') as f: long_description = f.read() setup( name='look_up', version='0.0.1', packages=find_packages(include=['look_up', 'look_up.*']), # 显式包含主包和所有子包 long_description=long_description, long_description_content_type='text/markdown' # 让安装工具识别README格式,更规范 )
3. 重新执行可编辑安装
先清理之前的安装残留,再重新安装:
# 清理旧的安装残留文件 python setup.py clean --all # 推荐用官方现代的可编辑安装方式(替代setup.py develop) pip install -e .
如果你习惯用setup.py develop,执行python setup.py develop也可以,但pip install -e .是当前官方推荐的标准方式。
4. 额外检查点
- 确保你是在项目根目录(包含setup.py的那个
look-up文件夹)下执行安装命令,否则find_packages()找不到你的包。 - 如果你用了虚拟环境,确认已经激活了对应的环境,避免模块安装到全局Python或者其他不相关的环境中。
- 检查所有
__init__.py文件是否存在且无语法错误,你的结构里已经包含了,这部分应该没问题。
完成以上步骤后,打开Python交互环境测试导入:
import look_up from look_up.utilities import validator
应该就能正常导入了。
内容的提问来源于stack exchange,提问作者Fabian Hafner
相关产品推荐
相关产品推荐

