如何在Python项目our_project中独立使用自有模块my_module?
解决方案:独立Git仓库Python模块的复用与维护
这种场景太常见了,我来给你几个简单实用的方案,既能让our_project轻松用上my_module,又能保持两个仓库完全独立,方便你单独维护my_module并在其他项目里复用:
1. 优先推荐:Pip可编辑安装(Editable Install)
这是最省心的日常开发方案,能让our_project实时获取my_module的修改,还不用复制文件。
步骤很简单:
- 先给
my_module添加一个基础的配置文件(如果还没有的话):在my_module的根目录创建pyproject.toml,内容可以是最基础的版本信息:
[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "my_module" version = "0.1.0"
- 切换到
our_project的虚拟环境(建议用虚拟环境隔离依赖),运行命令:
pip install -e /本地路径/to/my_module # 或者如果my_module是远程Git仓库,也可以直接装: pip install -e git+https://你的git仓库地址/my_module.git#egg=my_module
这样之后,你在our_project里直接import my_module就能用,而且修改my_module的代码后,不用重新安装,our_project会自动加载最新版本。
2. 临时测试方案:添加Python路径
如果只是临时测试,不想搞配置文件,可以直接在our_project的代码开头添加my_module的路径:
import sys # 替换成你my_module所在的实际目录 sys.path.append("/path/to/my_module") import my_module
不过这个方案有个缺点:路径是硬编码的,换环境或者换机器就得修改代码,长期用不太靠谱,适合快速验证的时候用。
3. 版本关联方案:Git子模块
如果需要在our_project里明确跟踪my_module的特定版本,同时保持两个仓库独立,可以用Git子模块:
- 在
our_project的根目录运行:
git submodule add https://你的git仓库地址/my_module.git
执行后,our_project里会出现一个my_module目录,这个目录本身还是独立的Git仓库——你可以在里面修改my_module并提交到自己的仓库,也能在our_project里通过git submodule update拉取my_module的最新版本。
- 之后同样可以用上面的可编辑安装方式,或者添加路径的方式在
our_project里引用my_module。
总结
- 日常开发复用优先选可编辑安装,简单灵活,实时同步修改;
- 临时测试用添加Python路径;
- 需要版本绑定的时候用Git子模块。
内容的提问来源于stack exchange,提问作者cdrom
相关产品推荐
相关产品推荐

