PyPi包安装后导入出现ModuleNotFoundError问题求助
问题排查与解决方案
核心原因
开发环境下,项目根目录会被Python自动加入sys.path,直接import functionFile1能找到同目录下的模块;但包安装后,Python仅将packageName的路径加入sys.path,此时functionFile1属于packageName.functionFiles子包,不在顶级搜索路径中,导致绝对导入失败。
修复方案
方案1:使用相对导入(推荐)
修改functionFile2.py中的导入语句,用相对路径引用同子包内的模块:
import json import requests import pandas as pd import time from . import functionFile1 as ac # 相对导入当前子包下的functionFile1
如果只需要导入模块内的特定对象,可调整为:
from .functionFile1 import target_function as ac
方案2:使用完整绝对导入
直接基于包的完整命名空间导入:
import json import requests import pandas as pd import time from packageName.functionFiles import functionFile1 as ac
额外验证建议
- 安装包后,可在Python交互环境中执行以下命令确认包路径:
import packageName print(packageName.__file__)
确保路径指向site-packages下的安装目录而非本地开发目录。
2. 重新打包安装时,确保setup.py或pyproject.toml正确配置了包结构,避免遗漏子模块。
内容的提问来源于stack exchange,提问作者FlyingJay
相关产品推荐
相关产品推荐

