Python setup.py - 强制更新需求(使用 dependency_link)

jpi*_*tel 5 python versioning packaging setuptools

假设我有一个名为 的 python 项目myproject,它依赖于mydependency. 两者均由我维护。

我怎样才能创建一个 setup.pymyproject以便它总是尝试安装新版本的mydependency,无论安装了哪个版本?

假设我有一个项目的 setup.py

setup(
    ...
    install_requires=['mydependency'],
    dependency_links = ['url_to_mydependecy_repo@develop#egg=mydependency'],
    ....
)
Run Code Online (Sandbox Code Playgroud)

问题是,在第二次安装运行时,mydependency已经安装了,因此安装将不会获取存储库并尝试安装更新的版本。由于mydependecy正在积极开发(由我),我需要myproject安装以始终获取依赖项链接。

我尝试在 mydepency 的 setup.py 上使用#egg=mydependency-devdependency_link 和'mydependency==dev'in install_requiresversion='dev'但在第二次安装时“dev”已经存在,因此不会再次获取它。

myproject使用具有相同内容的requirements.txtdependency_links进行完全相同的操作。在以下安装中,已经满足要求,因此不会再次获取。

注意:使用pip -r requirements.txt --upgrade做了我想要的,但我不是手动安装,而是从 Openshift 安装,所以我无法真正添加--upgrade

neo*_*tic 1

尝试将依赖项链接到您已经尝试过的myproject开发版本,但在您的存储库中使用“有效”( semver?)版本控制(即不将版本设置为)。这将导致重新下载和重新安装依赖项(至少在我的情况下有效):mydependencymydependencydev

setup(
    ...
    install_requires=['mydependency == dev'],
    dependency_links = ['url_to_mydependecy_repo@develop#egg=mydependency-dev'],
    ....
)
Run Code Online (Sandbox Code Playgroud)