本文详解如何通过 `pip install -e .` 正确安装本地 python 项目,并确保所有嵌套子包(如 `mypkg.subpkg1`)被自动识别和导入,核心在于正确设置 `package_dir` 与 `find_packages()` 的协同关系。
在采用“ad-hoc 布局”(即源码位于子目录如 mypkg/ 而非项目根目录)的本地 Pyth
on 项目中,执行 pip install -e . 时若遇到 error: package directory 'subpkg1' does not exist,通常并非路径真实缺失,而是 setuptools 未能正确定位包根目录——它默认在当前目录(.)下搜索 __init__.py,而你的实际包结构位于 mypkg/ 下。
根本原因在于:find_packages(where='mypkg') 告诉 setuptools 去哪里找包,但它仍默认认为包的导入名前缀(import namespace)与该目录名一致;而你的目标是让 import mypkg 成立,即顶层包名为 mypkg,但 mypkg/ 本身是子目录。此时必须显式声明 “空字符串命名空间对应 mypkg/ 目录”,即通过 package_dir={"": "mypkg"} 建立映射。
✅ 正确的 setup.py 应如下所示:
from setuptools import setup, find_packages
setup(
name="Code",
author="Me",
author_email="Me",
description="Code",
package_dir={"": "mypkg"}, # ← 关键!声明:顶级包("")位于 ./mypkg/
packages=find_packages(where="mypkg"), # ← 在 mypkg/ 内递归发现所有含 __init__.py 的子目录
python_requires=">=3.6",
)? 注意事项:
? 进阶建议:推荐迁移到 pyproject.toml(PEP 621)风格,更简洁且现代:
# pyproject.toml
[build-system]
requires = ["setuptools>=45", "wheel", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"
[project]
name = "Code"
authors = [{name = "Me", email = "Me"}]
description = "Code"
requires-python = ">=3.6"
[project.options.packages]
find = {where = ["mypkg"], include = ["*"]}此时无需 setup.py,pip install -e . 同样生效,且 package_dir 映射由 find = {where = ["mypkg"]} 隐式支持(setuptools 自动处理)。
总结:package_dir={"": "mypkg"} 是 ad-hoc 布局下可编辑安装的“钥匙”,它桥接了物理路径与 Python 导入命名空间。配合适当的 find_packages() 调用,即可实现单命令安装 + 全子包可用的开发体验。
# python
# vscode
# ai
# pycharm
# vs code
相关文章:
个人摄影网站制作流程,摄影爱好者都去什么网站?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
油猴 教程,油猴搜脚本为什么会网页无法显示?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站主机是否属于云主机类型?
建站之星如何配置系统实现高效建站?
如何在阿里云完成域名注册与建站?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
重庆市网站制作公司,重庆招聘网站哪个好?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
网站制作免费,什么网站能看正片电影?
如何通过山东自助建站平台快速注册域名?
如何通过智能用户系统一键生成高效建站方案?
智能起名网站制作软件有哪些,制作logo的软件?
如何在宝塔面板创建新站点?
如何快速辨别茅台真假?关键步骤解析
打鱼网站制作软件,波克捕鱼官方号怎么注册?
海南网站制作公司有哪些,海口网是哪家的?
建站之星安装后如何配置SEO及设计样式?
如何快速启动建站代理加盟业务?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
简单实现Android文件上传
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
山东网站制作公司有哪些,山东大源集团官网?
香港服务器WordPress建站指南:SEO优化与高效部署策略
微信小程序 五星评分(包括半颗星评分)实例代码
如何访问已购建站主机并解决登录问题?
如何选择CMS系统实现快速建站与SEO优化?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
创业网站制作流程,创业网站可靠吗?
建站之星安装模板失败:服务器环境不兼容?
,石家庄四十八中学官网?
,如何利用word制作宣传手册?
公众号网站制作网页,微信公众号怎么制作?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
上海网站制作开发公司,上海买房比较好的网站有哪些?
平台云上自主建站:模板化设计与智能工具打造高效网站
如何在Windows环境下新建FTP站点并设置权限?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何彻底卸载建站之星软件?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
桂林网站制作公司有哪些,桂林马拉松怎么报名?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
如何用PHP快速搭建CMS系统?
建站10G流量真的够用吗?如何应对访问高峰?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
*请认真填写需求信息,我们会在24小时内与您取得联系。