有没有办法为我的基于平台的Python应用程序提供条件requirements.txt文件?

2024-01-01

我编写了一个与 Linux 和 Windows 平台兼容的 python 应用程序。然而有一个问题......我需要的 Windows 的 python 软件包之一与 Linux 不兼容。幸运的是,还有另一个软件包可以在 Linux 上提供相同的功能。所有其他依赖项在两个平台上都是兼容的。

我知道我可以有 2 个单独的需求文件来分别解决两个平台依赖项。像 win_requirements.txt 和 linux_requirements.txt 之类的东西,但是这种方法感觉不是最好的方法。

我想知道是否有一种方法可以只拥有一个requirements.txt 文件,以便任何用户都可以使用pip install -r requirements.txt安装所有依赖项,无论它们是什么平台?

也许是这样的??:

SOAPpy>=0.12.22
pycrypto>=2.6.1
suds>=0.4
Python-ldap>=2.4.19
paramiko>=1.15.2
nose>=1.3.4
selenium>=2.44.0
bottle>=0.12.8
CherryPy>=3.6.0
pika>=0.9.14
if platform.system() == 'Linux':
    wmi-client-wrapper>=0.0.12
else if platform.system() == 'Windows':
    WMI>=1.4.9

您可以在分号后添加某些条件要求。对于 sys_platform 和 python_version 特别有用。

例子:

atomac==1.1.0; sys_platform == 'darwin'
futures>=3.0.5; python_version < '3.0'
futures>=3.0.5; python_version == '2.6' or python_version=='2.7'

显然,您还可以排除库的特定版本:

futures>=3.0,!=3.0.5

它们定义在PEP 508 https://www.python.org/dev/peps/pep-0508/ and PEP 0345(环境标记) https://www.python.org/dev/peps/pep-0345/#environment-markers但语法似乎遵循草案PEP 0496 https://www.python.org/dev/peps/pep-0496/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法为我的基于平台的Python应用程序提供条件requirements.txt文件? 的相关文章

随机推荐