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

pip install未安装子文件夹但setup.py install可正常安装问题咨询

问题原因

你当前的setup.py配置中,packages参数仅填写了["package"],setuptools不会自动递归识别并打包子目录下的子包,因此subpackage目录不会被纳入安装内容。

  • 本地执行python setup.py install时能正常运行,通常是因为本地开发环境的目录结构完整,或者此前执行过开发模式安装,直接读取了本地项目目录的文件,没有走严格的打包筛选逻辑。
  • 执行pip install git+...安装时,会拉取最新代码构建纯净的安装包,严格按照setup.py配置筛选要打包的文件,因此subpackage被遗漏,最终触发导入报错。

修复方法

修改setup.py中的packages配置即可,推荐两种实现方式:

  1. 手动声明所有包:
packages=["package", "package.subpackage"],
  1. 用find_packages自动递归识别所有包,后续新增子包无需手动修改配置:
    首先在文件头部导入对应方法:
from setuptools import setup, find_packages

再将setup函数中的packages行修改为:

packages=find_packages(),

导入兼容性说明

你当前subpackage/__init__.py的写法完全符合需求,修复安装配置后:

  • 可以正常通过from package import subpackage导入
  • 可以直接通过subpackage.function1()的形式调用子模块内的函数
  • 原有导入方式的向后兼容性不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:15:03