配置,以便pip安装可以从github工作

时间:2011-11-23 18:56:54

标签: python git pip

我们希望使用pip和github将私有软件包安装到我们的生产服务器上。这个问题涉及github仓库中需要的东西才能使安装成功。

假设以下命令行(验证正常并尝试安装):

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

ProductName中需要包含哪些内容?它是使用sdist选项运行setup.py之后通常在tar文件中的内容,还是实际的tar.gz文件或其他内容?

我在这里问,因为我尝试了几种变化而无法使其发挥作用。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:265)

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

名为foo的包将是:

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

从github安装,如:

$ 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/reference/pip_install/#vcs-support

的更多信息

答案 1 :(得分:103)

当我不得不从github repo安装时,我有类似的问题,但是不想安装git等。

这样做的简单方法是使用包的zip存档。将/zipball/master添加到repo URL:

    $ 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...

这样你就可以使用github源代码库进行pip工作了。

答案 2 :(得分:24)

如果您想使用requirements.txt文件,则需要git以及类似下面的条目,以匿名方式获取requirements.txt中的主分支。

对于常规安装:

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

对于“editable”安装:

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

可编辑模式将项目的源代码下载到当前目录中的./src。它允许pip freeze输出包的正确github位置。

答案 3 :(得分:11)

克隆目标存储库的方式与克隆任何其他项目相同:

git clone git@github.com:myuser/foo.git

然后将其安装在开发模式中:

cd foo
pip install -e .

您可以更改任何内容,使用foo包的每个代码都将使用修改后的代码。

这个解决方案有两个好处:

  1. 您可以在家庭项目目录中安装软件包。
  2. 包中包含.git dir,因此它是常规的Git存储库。你可以马上推到你的叉子上。