我们希望使用pip和github将私有软件包安装到我们的生产服务器上。这个问题涉及github仓库中需要的东西才能使安装成功。
假设以下命令行(验证正常并尝试安装):
pip install git+ssh://git@github.com/BlahCo/search/tree/prod_release_branch/ProductName
ProductName中需要包含哪些内容?它是使用sdist选项运行setup.py之后通常在tar文件中的内容,还是实际的tar.gz文件或其他内容?
我在这里问,因为我尝试了几种变化而无法使其发挥作用。任何帮助表示赞赏。
答案 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
-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
包的每个代码都将使用修改后的代码。
这个解决方案有两个好处:
.git
dir,因此它是常规的Git存储库。你可以马上推到你的叉子上。