gpt4 book ai didi

python - 如何在Python中根据用户在运行时的选择安装依赖项?

转载 作者:行者123 更新时间:2023-12-01 07:38:41 32 4
gpt4 key购买 nike

我创建了一个 SDK,它使用多个依赖项,例如 boto3、azure-storage、google-cloud-datastore 等。现在在我的代码中,我动态导入这些模块,因为用户有时会在GCP、Azure 或 AWS。所以我不想安装他不会使用的依赖项。这是我的问题 -

  1. 我的方法正确吗?我应该安装所有依赖项吗?

  2. 如果没有,那么安装包的最佳方法是什么,以便用户可以向包管理器提供一些参数,以便它仅安装属于他所在环境的依赖项。

    类似pip install mysdk --env=aws

附注我知道 python 确实支持 setup.py 中的 install_requires 参数,其中可以使用 python_version 变量,但我可以访问用户定义为 args 的其他环境变量

最佳答案

您可以在 extras_requiresetup.py(或 setup.cfg)中定义可选依赖项 block 。

对于您的 setup.py 文件

setup(
...
extras_require={
'aws': ["boto3"],
}
)

setup.cfg 文件

[options.extras_require]
aws =
boto3

当最终用户安装您的软件包时,他们可以通过附加以下内容来指定额外内容:pip install mysdk[aws]

请注意,您还可以像任何其他依赖项一样指定依赖包的版本范围。

有关更多信息,相关文档位于:https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies

关于python - 如何在Python中根据用户在运行时的选择安装依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56832469/

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