gpt4 book ai didi

python - 如何在 pip 19 和 python3.7 的包中指定可选和条件依赖项

转载 作者:行者123 更新时间:2023-12-01 07:33:28 25 4
gpt4 key购买 nike

有没有办法使 python 包的某些依赖项成为可选的?或者以安装另一个依赖项失败为条件。

我手上的两个案例是:

  1. 我想安装依赖项xy。但是,如果其中一个安装失败,该软件包可能只能与其中一个一起正常工作,因此安装完成时会出现警告。
  2. 如果 y 安装失败,我想安装依赖项 x

最佳答案

您可以有conditional dependencies ,但不基于其他依赖项安装的成功/失败。

您可以有optional dependencies ,但是如果可选依赖项安装失败,安装仍然会失败。

使依赖项成为可选(即,如果安装失败,主安装也不会失败)或有条件(基于其他包的成功/失败)的最简单方法是添加手动 shell 的自定义安装命令输出到 pip 来安装各个软件包,并检查每个调用的结果。

在您的setup.py中:

import sys
import subprocess
from setuptools import setup
from setuptools.command.install import install

class MyInstall(install):
def run(self):
# Attempt to install optional dependencies
try:
subprocess.check_call([sys.executable, "-m", "pip", "install", "dependency-y"])
except subprocess.CalledProcessError:
subprocess.check_call([sys.executable, "-m", "pip", "install", "dependency-x"])

# Continue with regular installation
install.run(self)

setup(
...

cmdclass={
'install': MyInstall,
},
)

请注意,这在您发布源代码分发版(.tar.gz.zip)时有效。如果您将包发布为内置发行版 (.whl),它将不起作用。

关于python - 如何在 pip 19 和 python3.7 的包中指定可选和条件依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111966/

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