极简Python项目打包异常,导入后无法访问包内函数问题求助
问题原因
- 你项目内层apack目录下的
__init__.py为空,Python导入包时默认仅加载__init__.py中的内容,子模块(apack.py、aux.py)内的函数不会自动暴露到包的顶层命名空间 aux.py中bar函数调用foo时未传递入参,和foo的定义不匹配,即便解决导入问题也会触发参数缺失报错
解决步骤
- 编辑内层apack目录下的
__init__.py,添加如下内容:
from .apack import foo from .aux import bar
这一步会把需要对外暴露的函数提前导入到包的顶层命名空间,实现直接通过apack.xxx调用的效果。
- 修复
aux.py中的参数错误,示例修改如下(可根据实际需求调整入参逻辑):
from apack import foo def bar(x): return foo(x) + 1
- 重新安装包
先卸载旧版本避免缓存影响:
pip uninstall -y apack
再重新安装:
pip install .
效果验证
安装完成后进入Python交互环境执行以下代码即可正常运行:
import apack apack.foo(1) # 返回1 apack.bar(1) # 返回2
内容的提问来源于stack exchange,提问作者yujaiyu
相关产品推荐
相关产品推荐

