首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何` `pip install`一个有Git依赖的包?

如何` `pip install`一个有Git依赖的包?
EN

Stack Overflow用户
提问于 2016-04-11 17:24:23
回答 3查看 9K关注 0票数 21

我有一个名为some-library的私有库(实际名称已更改),其安装文件如下所示:

代码语言:javascript
复制
setup(
    name='some-library',

    // Omitted some less important stuff here...

    install_requires=[
        'some-git-dependency',
        'another-git-dependency',
    ],
    dependency_links=[
        'git+ssh://git@github.com/my-organization/some-git-dependency.git#egg=some-git-dependency',
        'git+ssh://git@github.com/my-organization/another-git-dependency.git#egg=another-git-dependency',
    ],
)

所有这些Git依赖项都可能是私有的,所以installation via HTTP不是一个选项。我可以在some-library的根目录中使用python setup.py installpython setup.py develop,没有问题。

但是,在Git上安装不起作用:

代码语言:javascript
复制
pip install -vvv -e 'git+ssh://git@github.com/my-organization/some-library.git@1.4.4#egg=some-library'

该命令在查找some-git-dependency时失败,错误地假设它需要从PyPI获取依赖项,然后在得出它不在PyPI上的结论后失败。我的第一个猜测是尝试使用--process-dependency-links重新运行该命令,但随后发生了以下情况:

代码语言:javascript
复制
   Cannot look at git URL git+ssh://git@github.com/my-organization/some-git-dependency.git#egg=some-git-dependency
   Could not find a version that satisfies the requirement some-git-dependency (from some-library) (from versions: )

为什么它会产生这个模糊的错误?什么是正确的方式来pip install一个包的Git依赖,可能是私有的?

EN

回答 3

Stack Overflow用户

发布于 2016-04-29 23:44:48

这也应该适用于私有存储库:

代码语言:javascript
复制
dependency_links = [
     'git+ssh://git@github.com/my-organization/some-git-dependency.git@master#egg=some-git-dependency',
     'git+ssh://git@github.com/my-organization/another-git-dependency.git@master#egg=another-git-dependency'
],
票数 2
EN

Stack Overflow用户

发布于 2016-05-01 22:22:07

当url与#egg一起使用时,应该使用git+git,如下所示:

代码语言:javascript
复制
-e git+git@repo.some.la:foo/my-repo.git#egg=my-repo

在不带#egg的生产环境中使用git+ssh,但您可以指定@version或branch @master

代码语言:javascript
复制
git+ssh://git@repo.some.la/foo/my-repo.git@1.1.6

要使用应用程序版本,请使用git标签Git Basics - Tagging

票数 1
EN

Stack Overflow用户

发布于 2016-04-28 21:30:05

如果我指的是"pip install dependency links",您不会指GitHub存储库本身,而是指与该GitHub存储库关联的tarball镜像:

代码语言:javascript
复制
dependency_links=[
        'git+ssh://git@github.com/my-organization/some-git-dependency/tarball/master/#egg=some-git-dependency',
        'git+ssh://git@github.com/my-organization/another-git-dependency/tarball/master/#egg=another-git-dependency',
    ],

其中"some-git-dependency“是依赖项的名称*和版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36544700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档