安装本地 Git 代码库的 pip 包

88

我无法找到使用pip将本地目录安装为Python包的正确方式。

(venv) C:\(...)>pip install . --no-index
Ignoring indexes: http://pypi.python.org/simple/
Unpacking c:\users\fsantos\desktop\biskates.com\biskates\forks\django-pipeline
  Running setup.py egg_info for package from file:///(...)%5Cforks%5Cdjango-pipeline

Installing collected packages: django-pipeline
  Running setup.py install for django-pipeline

Successfully installed django-pipeline
Cleaning up...

(venv) C:\(...)>cd ..
(venv) C:\(...)>python
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pipeline
>>> pipeline.__file__
'C:\\(...)site-packages\\pipeline\\__init__.py'
>>>

正如您所看到的,pip只是将软件包复制到site-packages中。我如何避免这种情况,直接从其源文件夹中使用该软件包?

我正在尝试将django-pipeline集成到我的Django项目中,但首先我想先为Django 1.4添加支持,因此我进行了fork并克隆了我的fork。

3个回答

183

我也可以直接使用:

cd your-local-repo
pip install -e .
或者
python setup.py install develop

1
我的目的只是为了开发,但这是一个非常好的答案。这在虚拟环境中的 requirements.txt 上也应该适用。 - Fábio Santos
太棒了!那么当更改合并到主存储库中时,我该如何卸载呢? - ken
1
@FábioSantos 在你的故事中,-e 是唯一缺失的部分,我认为你应该将这个答案标记为正确的。 - smido
阅读这个答案几年之后,我确实可以说这是正确的答案。抱歉这么晚才回复 :) - Fábio Santos
1
命令应该是 python setup.py develop 而不是 python setup.py install develop。也就是说,install 不应该存在。请参阅 https://setuptools.readthedocs.io/en/latest/userguide/development_mode.html。 - Lucas

105

如果您正在使用 venv,您可以执行以下操作:

env/bin/pip install git+file:///path/to/your/git/repo

或者使用分支:

env/bin/pip install git+file:///path/to/your/git/repo@mybranch

1
这个问题是关于安装实际目录的(因为我正在开发两个非常相关的项目,我想在调试时同时编写代码),但这是一个很好的提醒,说明可以做些什么! - Fábio Santos
Mike,谢谢!这对我帮助很大。我有一些git+ssh私有依赖项,而仓库服务器正在维护中。 - volhv
非常重要的一点是,在 git+file: 后面有 3/ - nanounanue
env/bin/pip 相对于通常的 python -m pip 有什么优势? - Matt VanEseltine

14

您可以使用以下命令与 pip pipenv 一起从本地git存储库安装:

pip install git+file:///path/to/your/package#egg=package-name

请注意,这里的file:后面有3个斜杠。

要从远程仓库安装,请使用:

pip install git+ssh://git@github.com:Username/Project.git
您也可以像这样指定所需的分支:
pip install git+ssh://git@github.com:Username/Project.git@master

我刚刚整合了之前由 Quiltnanounanue 所提供的答案和评论,以及 这个问题。还在 这里 发布了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接