我已经安装使用命令库
pip install git+git://github.com/mozilla/elasticutils.git
直接从Github上库安装。 这工作得很好,我想在我的这种依赖性requirements.txt
。 我看其他的票像这样但这并没有解决我的问题。 如果我把喜欢的东西
-f git+git://github.com/mozilla/elasticutils.git
elasticutils==0.7.dev
在requirements.txt
文件, pip install -r requirements.txt
在输出结果如下:
Downloading/unpacking elasticutils==0.7.dev (from -r requirements.txt (line 20))
Could not find a version that satisfies the requirement elasticutils==0.7.dev (from -r requirements.txt (line 20)) (from versions: )
No distributions matching the version for elasticutils==0.7.dev (from -r requirements.txt (line 20))
该规定文件的文件没有提到使用链接git+git
协议说明符,所以也许这仅仅是不支持的。
是否有人有我的问题的解决方案?
“可编辑”包语法可被用requirements.txt
到从各种导入包VCS(GIT,HG,BZR,SVN) :
-e git://github.com/mozilla/elasticutils.git#egg=elasticutils
另外,也可以指向特定的承诺:
-e git://github.com/mozilla/elasticutils.git@000b14389171a9f0d7d713466b32bc649b0bed8e#egg=elasticutils
通常情况下你requirements.txt
文件看起来是这样的:
package-one==1.9.4
package-two==3.7.1
package-three==1.0.1
...
要指定GitHub库,你不需要package-name==
约定。
下面更新的例子package-two
使用GitHub库。 之间的文本@
和#
表示包的细节。
指定提交哈希( 41b95ec
在更新的情况下requirements.txt
):
package-one==1.9.4
git+git://github.com/path/to/package-two@41b95ec#egg=package-two
package-three==1.0.1
指定分支名称( master
):
git+git://github.com/path/to/package-two@master#egg=package-two
指定标签( 0.1
):
git+git://github.com/path/to/package-two@0.1#egg=package-two
指定版本( 3.7.1
):
git+git://github.com/path/to/package-two@releases/tag/v3.7.1#egg=package-two
需要注意的是#egg=package-two
是不评论在这里,它是明确规定的包名
该博客文章对一些话题更多的讨论。
requirements.txt
允许在git仓库指定作为PIP的上的程序包的相关的以下方法7.0:1
[-e] git+git://git.myproject.org/SomeProject#egg=SomeProject
[-e] git+https://git.myproject.org/SomeProject#egg=SomeProject
[-e] git+ssh://git.myproject.org/SomeProject#egg=SomeProject
-e git+git@git.myproject.org:SomeProject#egg=SomeProject
对于Github上,这意味着你可以做(注意省略-e
):
git+git://github.com/mozilla/elasticutils.git#egg=elasticutils
为什么多余的答案吗?
我得到了某种程度上受到迷惑-e
标志在其他的答案所以这里我澄清:
所述-e
或--editable
标志表示该包被安装在<venv path>/src/SomeProject
并且因此没有在深埋<venv path>/lib/pythonX.X/site-packages/SomeProject
它否则将放置在2
文档
- 1 https://pip.readthedocs.org/en/stable/reference/pip_install/#git
- 2 https://pip.readthedocs.org/en/stable/reference/pip_install/#vcs-support
首先,安装与git+git
或git+https
,在你知道的任何方式。 安装的例子kronok
的的的分支brabeion
项目:
pip install -e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion
二,使用pip freeze > requirements.txt
让你的正确的事情requirements.txt
。 在这种情况下,你会得到
-e git+https://github.com/kronok/brabeion.git@12efe6aa06b85ae5ff725d3033e38f624e0a616f#egg=brabeion-master
三,测试结果如下:
pip uninstall brabeion
pip install -r requirements.txt
由于PIP v1.5
,(发布2014年1月1日: 更新日志 , PR ),你也可以指定一个git回购的子目录包含你的模块。 语法如下:
pip install -e git+https://git.repo/some_repo.git#egg=my_subdir_pkg&subdirectory=my_subdir_pkg # install a python package from a repo subdirectory
注:为PIP模块作者,理想情况下你可能想,如果你可以发布你的模块中它自己的顶级回购。 然而,这个功能对于一些包含子目录python模块现有的预回购很有帮助。 你可能会被迫这种方式安装他们,如果他们不会发布到PyPI中了。