You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python自定义包嵌套子目录导入失败问题求助

问题排查与解决

你的问题根源在于setup.py中仅指定了顶层包myfol1,setuptools默认不会自动递归包含嵌套的子包,导致安装后子目录的模块未被纳入包结构,因此无法导入。

解决方案

修改setup.py中的packages参数,使用setuptools.find_packages()自动递归查找所有包含__init__.py的子目录:

import setuptools

setuptools.setup(
    name='myfol1',
    version='0.0.3',
    packages=setuptools.find_packages()
)

原理说明

find_packages()会自动扫描当前目录下所有包含__init__.py的目录,将它们全部注册为包的一部分,这样安装后myfol1.myfol2、myfol1.myfol2.myfol3等子模块就能正常被导入。

后续操作

  1. 将修改后的setup.py推送到Git仓库的0.0.3标签(或更新对应版本的分支)
  2. 在目标环境重新执行pip install -r requirements.txt,确保安装的是更新后的包版本

备选方案(不推荐)

如果不想使用自动查找,也可以手动列出所有子包,但这种方式在嵌套层级多的时候容易遗漏:

packages=['myfol1', 'myfol1.myfol2', 'myfol1.myfol2.myfol3']

内容的提问来源于stack exchange,提问作者Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 11:57:03