声明从 github 分支安装的要求

Declare a requirement to be installed from github branch

将回购的特定分支作为依赖项并能够将其用于 运行ning 测试的正确方法是什么?

如果您只指定 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 分支。

尝试:

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是一个tag,一个branch或者一个commit ID(SHA1,可以缩短到7-10个字符);在你的情况下它是分支 python3.

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

这样的情况很有用