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

如何在多个Python项目间共享通用代码并实现自动更新?

多项目复用通用代码的最佳实践

针对你把通用代码拆分到独立项目维护、并在其他项目共享的需求,以下是几种成熟的实践方案,包含更新机制的说明:

一、将通用代码打包为本地可编辑安装的Python包

这是最常用的轻量方案,适合个人或小团队使用,修改通用代码后其他项目能实时生效。

操作步骤:

  1. 在CommonProject目录下创建pyproject.toml文件(替代老旧的setup.py,是当前Python官方推荐的打包配置),示例内容:
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "common-utils"
version = "0.1.0"
authors = [
  { name="Your Name", email="your@email.com" }
]
description = "通用工具函数包"
  1. 在Project1和Project2的虚拟环境中,执行本地可编辑安装命令:
pip install -e /path/to/CommonProject
  1. 之后在Project1/main.py和Project2/main.py中直接导入:
from utilities import your_function

更新机制:

因为是可编辑安装,你对CommonProject/utilities.py的任何修改,都会立即同步到所有引用该包的项目中,无需重新安装。如果需要发布正式版本,只需修改pyproject.toml中的version字段,然后重新安装即可。

二、使用Git子模块管理通用代码

如果你的项目都用Git管理,子模块可以让每个项目独立控制通用代码的版本,适合需要版本隔离的场景。

操作步骤:

  1. 先把CommonProject推送到独立的Git仓库。
  2. 在Project1的根目录执行命令,添加子模块:
git submodule add <CommonProject的Git仓库地址> common_utils
  1. 调整Project1/main.py的导入路径,比如把common_utils目录加入Python路径:
import sys
sys.path.append("./common_utils")
from utilities import your_function
  1. 提交子模块关联到Project1的Git仓库,其他开发者拉取Project1时,需要执行:
git submodule init
git submodule update

更新机制:

当CommonProject有更新时,在Project1的子模块目录中执行git pull拉取最新代码即可。如果需要固定某个版本,直接在子模块目录切换到对应提交,然后提交Project1的子模块版本变更。

三、搭建私有PyPI仓库分发通用包

适合中大型团队,能规范管理版本、权限,支持批量分发更新。

操作步骤:

  1. 搭建私有PyPI仓库(比如用devpi或自建Warehouse服务)。
  2. 每次CommonProject迭代后,打包并上传到私有仓库:
# 先构建包
python -m build
# 上传到私有仓库(以devpi为例)
devpi upload
  1. 在Project1和Project2的requirements.txt中指定私有仓库地址和包版本:
--extra-index-url http://your-private-pypi-url/simple/
common-utils==0.1.0
  1. 执行pip install -r requirements.txt安装。

更新机制:

当通用包有新版本时,修改requirements.txt中的版本号(或使用版本范围如>=0.1.0,<0.2.0),然后执行pip install --upgrade common-utils即可更新。不建议开启自动更新,以免引入不兼容变更,最好由开发者手动控制版本升级。

关于“自动更新”的说明

自动更新通用包存在较大风险(比如新代码引入Bug或不兼容变更),行业内一般不推荐。如果确实需要半自动化更新,可以在CI/CD流程中加入依赖检查步骤(比如用pip-audit或pip-check),定期提醒开发者升级版本,再手动确认更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:46:19