如何从代码仓库执行pip安装?修改开源库后如何引入自定义版本?
1. 通过pip从代码仓库安装软件包的方法
其实pip直接支持从Git、Mercurial等代码仓库拉取并安装包,最常用的是Git仓库,给你几个常见场景的命令:
直接从远程Git仓库安装(比如GitHub/GitLab):
公开仓库直接用HTTPS或SSH地址即可,命令格式如下:pip install git+<仓库URL>举个实际例子,安装某个GitHub上的项目:
pip install git+https://github.com/username/repo-name.git指定分支、标签或特定commit安装:
要是需要安装特定版本的代码,在URL后加@跟上分支名、标签或者commit哈希就行:# 安装dev分支 pip install git+https://github.com/username/repo-name.git@dev # 安装v1.2.3标签版本 pip install git+https://github.com/username/repo-name.git@v1.2.3 # 安装特定commit(前几位哈希即可) pip install git+https://github.com/username/repo-name.git@a1b2c3d安装本地Git仓库:
本地已克隆仓库的话,直接指定本地路径,还能加-e开启可编辑模式(修改代码后无需重装,立刻生效):# 普通安装 pip install /path/to/your/local/repo # 可编辑模式安装 pip install -e /path/to/your/local/repo
2. 在pipenv项目中引入自定义修改后的开源库版本
你现在用pipenv管理项目,原来装的是官方ofxstatement,现在改了自己的拷贝my-copy-ofxstatement,可以按下面的方式操作:
场景1:本地开发用修改后的版本(最便捷)
如果自定义拷贝在本地电脑上,直接用pipenv的可编辑安装模式,修改代码后项目会立刻用上最新内容,不用反复重装:
# 进入你的项目目录,执行这条命令 pipenv install -e /path/to/your/my-copy-ofxstatement
执行后,Pipfile会自动添加类似这样的条目:
[packages] ofxstatement = {editable = true, path = "/path/to/your/my-copy-ofxstatement"}
这样项目会优先使用你本地的修改版本,而非PyPI上的官方包。
场景2:自定义版本推到远程仓库后安装
要是你把修改后的代码推到了自己的GitHub/GitLab仓库,也能让pipenv直接从远程仓库安装:
# 安装主分支版本 pipenv install git+https://github.com/your-username/my-copy-ofxstatement.git#main # 或者指定分支/标签/commit pipenv install git+https://github.com/your-username/my-copy-ofxstatement.git@your-branch-name
这样Pipfile会生成对应依赖条目,团队其他人也能通过Pipfile安装你的自定义版本。
注意事项
- 若之前已安装过官方
ofxstatement,执行上述命令后,pipenv会替换原有依赖,优先使用你指定的自定义版本。 - 想切回官方版本的话,直接执行
pipenv install ofxstatement即可,会覆盖之前的自定义依赖配置。
内容的提问来源于stack exchange,提问作者0xDEAD BEEF
相关产品推荐
相关产品推荐

