配置以便pip install可以从github工作

我们想使用pip与github安装私有包到我们的生产服务器。这个问题涉及到为了安装成功,github回购中需要什么。

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

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

ProductName中需要驻留什么?它是在运行setup.py和sdist选项后通常会在tar文件中的内容,还是实际的tar.gz文件,还是其他什么?

我之所以问这个问题,是因为我已经尝试了几种不同的方法,但都无法奏效。感谢任何帮助。

176569 次浏览

你需要整个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/reference/pip_install/#vcs-support

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

最简单的方法就是使用zip压缩包。将/zipball/master添加到回购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...

通过这种方式,您将使pip与github源存储库一起工作。

如果你想使用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位置。

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

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

然后在开发模式下安装:

cd foo
pip install -e .

你可以改变任何你不想改变的东西,并且每个使用foo包的代码都会使用修改后的代码。

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

  1. 你可以在你的主项目目录下安装包。
  2. 包包含.git目录,所以它是常规的Git存储库。你可以马上用你的餐叉。

您可以在Colab中尝试这种方法

!git clone https://github.com/UKPLab/sentence-transformers.git
!pip install -e /content/sentence-transformers
import sentence_transformers

这里有一个简单的解决方案

与git

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

没有git

pip install https://github.com/jkbr/httpie/tarball/master

pip install https://github.com/jkbr/httpie/zipball/master

pip install https://github.com/jkbr/httpie/archive/master.zip

注意:你需要一个包含setup.py文件的python包。

下面的格式可以用于从GitHub通过pip安装python库。

pip install <LibName>@git+ssh://git@github.com/<username>/<LibName>#egg<LibName>

使用terminal命令测试优化 Ubuntu解决方案:

<强>步骤1: 在选定的目录下克隆git repo.

例子:

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

<强>步骤2: 选择/更改路径到目录,到克隆文件夹

$ cd ClonedFolderName

<强>步骤3: 输入以下命令安装

. zip包
ColnedFolderName(directory Name) $ pip install ./

PIP安装。/是命令,输入克隆目录名称

注意:确保setup . py在克隆的repo中。(在默认情况下)