【问题标题】:Declare a requirement to be installed from github branch声明从 github 分支安装的需求
【发布时间】:2018-05-25 02:08:39
【问题描述】:

将 repo 的特定分支作为依赖项并能够使用它来运行测试的正确方法是什么?

如果您只指定dependency_links,setuptools 会将其安装为依赖项,但不会安装它来运行测试:

setup(
    packages=['utils', 'tokens'],
    dependency_links=[
        'https://github.com/Demonware/jose/tarball/python3#egg=jose-1.1.0'
    ],
    # install_requires=['jose'],
    use_2to3=True,
    test_suite='test_jwt',
    zip_safe=True,
)

我依赖于jose 库的python3 分支。当我运行setup.py test 时,它抱怨找不到jose 包。

如果我添加 install_requires,它只会安装 master 分支,而不是我需要的 python3 分支。

【问题讨论】:

    标签: python-3.x setuptools


    【解决方案1】:

    试试:

    dependency_links=[
        'https://github.com/Demonware/jose@python3#egg=jose-1.1.0'
    ],
    install_requires=['jose'],
    

    让我解释一下。 pip/setuptools VCS URL 具有以下结构:

    git+https://repoURL@reference#egg=project-version
    

    RepoURL 是 VCS 存储库 URL(在您的情况下为 https://github.com/Demonware/jose)。

    Reference 是标签、分支或提交 ID(SHA1,可缩短为 7-10 个字符);在您的情况下,它是分支python3

    #egg= 哈希中的项目名称和版本是 setuptools 将 URL 识别为在 install_requires 中命名的项目的 URL 所必需的 — setuptools 在下载项目之前必须知道名称,因此 #egg=散列是传达该信息的唯一方法。版本不是绝对必要的,但对于install_requires=['jose>=1.1.0'] 这样的情况会很有用。

    【讨论】:

    • 我为pip VCS URL结构添加了一个解释。
    猜你喜欢
    • 2011-02-18
    • 2011-06-28
    • 2017-02-05
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 2021-12-29
    • 2016-01-15
    • 2019-10-03
    相关资源
    最近更新 更多