gpt4 book ai didi

python - setup.py 中的替代依赖项(回退)

转载 作者:太空狗 更新时间:2023-10-29 21:09:56 24 4
gpt4 key购买 nike

假设我要安装 pyodbc。它不能在某些 Windows 机器上构建,但有一个替代方案 - pypyodbc,它是 pyobdc 的纯 python 实现。

有没有一种方法可以为 setuptools.setup 指定 install_requires=["pyobdc"] 并回退到 pypyodbc 如果前一个包没有安装?

UPD:我针对这种特殊情况的解决方案:

import sys
from setuptools import setup

if sys.platform.startswith("win"):
pyodbc = "pypyodbc>=1.2.0"
else:
pyodbc = "pyodbc>=3.0.7"

...

setup(
...
install_requires=[pyobdc]
)

但我仍在寻找更通用的解决方案。

最佳答案

做你已经在做的事情似乎是一个常见的建议,但由于这个问题是这类问题的谷歌热门问题,我会指出 install_requires 支持相当复杂的迷你 - PEP 508 中指定的语言:

install_requires = [
'pypyodbc>=1.2.0;platform_system=="Windows"',
'pyodbc>=3.0.7;platform_system!="Windows"'
]

In a comment to a related question , 用户 Marius Gedminas请注意,在代码中计算您的 install_requires 可能会产生一些不利影响,因此应首选上述方法以避免该问题。

(另一方面,https://hynek.me/articles/conditional-python-dependencies/ 遗憾的是,如果您必须支持旧版本的 setuptools,则会出现一些非常严重的可移植性问题。)

关于python - setup.py 中的替代依赖项(回退),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23060421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com