如何从GitHub安装Python包?

343
我希望使用httpie的一个新功能。这个功能在github代码库https://github.com/jkbr/httpie中,但不在Python包索引https://pypi.python.org/pypi/httpie的发布版本中。
我该如何从github代码库安装httpie包?我尝试过...
pip install https://github.com/jkbr/httpie

但是我遇到了一个错误:“无法解包”。
在Nodejs中,我可以像这样从github安装软件包
npm install git+https://github.com/substack/node-optimist.git

4
也许您需要配置一下,以便可以使用pip install从GitHub安装软件包? - Henrik Andersson
2个回答

543

你需要使用正确的Git URL:

pip install git+https://github.com/jkbr/httpie.git#egg=httpie

请参阅pip文档的VCS支持部分

不要忘记包含egg=<projectname>部分,明确命名项目;这样pip就可以跟踪元数据,而无需运行setup.py脚本。


82
另一种安装选项(无需安装Git):pip install --upgrade https://github.com/jkbr/httpie/tarball/master。链接中提供了更多的安装选项。 - Jakub Roztocil
这也为我解决了一个问题,即在www.pythonanywhere.com上安装git托管的软件包。 - Arj
我可以选择一个分支吗? - Nicofisi
14
是的,需要在URL末尾加上@<分支名称>。请参考VCS支持文档 - Martijn Pieters
@JakubRoztocil - 会一直是 https://github.com/[user]/[package name]/tarball/master 吗?我需要从 GitHub 安装一个包,但不知道在 [package name] 后面输入什么。我尝试了 tarball/master,它可以工作。我只是想知道每次都能这样做。 - Soren V. Raben
1
@Konrad 在“tarball”之后是参考文献。 “master”是最常见的默认分支名称,但参考文献不一定是分支名称。您还可以使用标签或特定提交的SHA。查看特定存储库以查看它们拥有哪些分支和标签。 - Martijn Pieters

132

要从github安装Python包,您需要克隆该存储库。

git clone https://github.com/jkbr/httpie.git

然后只需从该目录运行setup.py文件,

sudo python setup.py install

15
很多 Python GitHub 仓库没有 setup.py 文件...请参考 https://github.com/tyiannak/pyAudioAnalysis。 - Scott Stensland
16
从本地克隆的存储库目录运行pip install .也可以。 - ccpizza
@ccpizza “目录'.'不可安装。找不到'setup.py'或'pyproject.toml'。” - techkuz
4
这意味着该软件包不符合要求,未满足 https://packaging.python.org/guides/distributing-packages-using-setuptools/ 中定义的要求。 - ccpizza
8
在不使用sudo的情况下以开发模式安装它: 从克隆的存储库的根目录中运行 pip install -e . 这种解决方案有两个好处:
  1. 您可以将软件包安装在您的家庭项目目录中。
  2. 软件包包括.git目录,因此它是常规的Git存储库。您可以立即推送到您的分支。[感谢@avalanchy提出此解决方案]
- ntg
显示剩余2条评论

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