配置以使pip install可以从github安装

266 投票
8 回答
182575 浏览
提问于 2025-04-17 06:56

我们想用pip通过github来安装私有包到我们的生产服务器上。这个问题是关于在github仓库里需要放些什么,才能让安装成功。

假设我们用以下命令行(这个命令可以正常认证并尝试安装):

pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName

那么在ProductName里需要放什么呢?是运行setup.py并使用sdist选项后,通常会在tar文件里包含的内容,还是实际的tar.gz文件,或者是其他东西呢?

我在这里问是因为我尝试了几种不同的方法,但都没有成功。任何帮助都很感激。

8 个回答

35

如果你想使用 requirements.txt 文件,你需要安装 git,并在你的 requirements.txt 文件中添加类似下面的内容,这样就可以匿名获取主分支的代码。

普通安装:

git+git://github.com/celery/django-celery.git

对于“可编辑”安装:

-e git://github.com/celery/django-celery.git#egg=django-celery

可编辑模式会把项目的源代码下载到当前目录下的 ./src 文件夹里。这样做的好处是,使用 pip freeze 命令时,可以正确输出这个包在 GitHub 上的位置。

120

我之前也遇到过类似的问题,当时我需要从GitHub的代码库安装东西,但又不想安装git等工具。

解决这个问题的简单方法是使用这个包的zip压缩文件。只需在代码库的链接后面加上 /zipball/master

    $ pip install https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Downloading/unpacking https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
  Downloading master
  Running setup.py egg_info for package from https://github.com/hmarr/django-debug-toolbar-mongo/zipball/master
Installing collected packages: django-debug-toolbar-mongo
  Running setup.py install for django-debug-toolbar-mongo
Successfully installed django-debug-toolbar-mongo
Cleaning up...

这样,你就可以让pip直接从GitHub的源代码库安装了。

334

你需要整个 Python 包,里面要有一个 setup.py 文件。

一个名为 foo 的包应该是这样的:

foo # the installable package
├── foo
│   ├── __init__.py
│   └── bar.py
└── setup.py

然后可以像这样从 GitHub 安装:

$ pip install git+ssh://git@github.com/myuser/foo.git
or
$ pip install git+https://github.com/myuser/foo.git@v123
or
$ pip install git+https://github.com/myuser/foo.git@newbranch

更多信息可以查看 https://pip.pypa.io/en/stable/cli/pip_install/

撰写回答