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

使用pip安装本地Python项目及自动发现子项目时遇错求助

问题原因与解决方案

错误原因

你设置packages=find_packages(where='mypkg')时,find_packages会在mypkg目录下搜索包,找到的是subpkg1、subpkg2这类子包。但setuptools会默认在项目根目录(setup.py所在的project_root_directory)下寻找这些包的目录,而非mypkg内部,所以才会报错error: package directory 'subpkg1' does not exist。

正确配置方法

要正确识别mypkg及其所有子包,有两种简单的配置方式:

方法一:直接使用默认的find_packages()

find_packages()默认会在setup.py所在的项目根目录下,搜索所有包含__init__.py的包,自动识别mypkg以及它的子包subpkg1、subpkg2。修改后的setup.py代码如下:

from setuptools import setup, find_packages

setup(
    name="Code",
    author="Me",
    author_email="Me",
    description="Code",
    packages=find_packages(),
    python_requires='>=3.6',
)

方法二:精确指定要包含的包前缀

如果需要更精准控制(比如只包含mypkg相关的包),可以用include参数匹配所有以mypkg开头的包:

from setuptools import setup, find_packages

setup(
    name="Code",
    author="Me",
    author_email="Me",
    description="Code",
    packages=find_packages(where='.', include=['mypkg*']),
    python_requires='>=3.6',
)

验证效果

配置完成后,运行pip install -e .,即可通过以下方式导入所有子包:

  • import mypkg
  • import mypkg.subpkg1
  • import mypkg.subpkg1.module1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:36:06