如何处理两个项目共享的无法上传PyPI的本地依赖问题
多项目共用私有Python模块解决方案
核心思路:将Module_X从两个项目中抽离为独立公共资源,通过本地/私有托管方式实现多项目共享,完全避免手动同步操作,且全程不会将敏感代码上传至公网。
方案1:本地可编辑模式安装(Python生态原生推荐方案)
- 第一步调整目录结构,将
Module_X抽为独立公共包,整体目录参考:
root ├── shared_libs │ └── module_x │ ├── pyproject.toml # 包配置文件 │ └── module_x # 实际业务代码目录 │ ├── __init__.py │ └── 其他代码文件 ├── project_a └── project_b
- 极简
pyproject.toml配置示例:
[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "module_x" version = "0.1.0" packages = ["module_x"]
- 分别进入
project_a、project_b的虚拟环境,执行可编辑安装命令:pip install -e ../shared_libs/module_x - 优势:修改公共
module_x代码后,两个项目无需重新安装即可直接生效,完全符合Python依赖管理规范,无导入异常风险。
方案2:符号链接(轻量快捷,适合单人开发场景)
- 先将
module_x抽离到公共存储目录,之后通过软链接将公共目录映射到两个项目的对应路径下:- Linux/macOS 终端执行(在project_a目录下执行,project_b操作同理):
ln -s 公共module_x的绝对路径 ./module_x - Windows 命令提示符执行:
mklink /D .\module_x 公共module_x的绝对路径
- Linux/macOS 终端执行(在project_a目录下执行,project_b操作同理):
- 优势:无需额外打包配置,操作成本极低,修改公共代码实时同步到两个项目。
方案3:私有Git仓库托管(适合多人协作、需要版本管控场景)
- 将抽离后的
module_x代码上传到私有Git仓库(可部署本地Git服务、或使用GitHub/GitLab私有仓库) - 两个项目的
requirements.txt中添加依赖声明即可:git+ssh://git@私有Git仓库地址/xxx/module_x.git@v1.0.0#egg=module_x - 优势:支持版本锁版、多人协作更新,不需要本地维护公共代码目录,适合团队开发场景。
内容的提问来源于stack exchange,提问作者Dapper
相关产品推荐
相关产品推荐

