2024-06-28 19:26:17 发布
网友
我这里的问题可能看起来很幼稚,但我从未在网络资源中找到任何线索
问题是,关于setup()函数或setup.cfg文件的install_requires参数,提到所使用的每个包,即使是python内置包,例如os,是否是一种好的做法?
setup()
setup.cfg
install_requires
os
我们可以假设任何python环境都有这些通用包,因此在设置中显式地提到它们是否会有问题,从而可能导致过于冗长
谢谢
您应该列出顶级第三方依赖项
不要列出Python标准库中的包和模块
请列出您的代码直接依赖的第三方依赖项,即包含以下内容的项目:
不要列出依赖项的依赖项
install_requires应包括非标准库要求以及对其版本的约束(根据需要)
例如,这将为numpy和scipy声明最小版本,但允许任何版本的scikit-learn:
numpy
scipy
scikit-learn
setup( # ... install_requires=["numpy>=1.13.3", "scipy>=0.19.1", "scikit-learn"] )
诸如os、sys之类的包是Python标准库的一部分,因此不应包括在内
sys
正如@sinoroc所提到的,这里只应声明直接的第三方依赖关系<依赖项的em>依赖项将自动处理。(例如,scikit-learn取决于joblib;当需要前者时,将安装后者)
joblib
我发现阅读其他包并了解它们的setup.py文件是如何定义的很有帮助
setup.py
install_requires应该只提到那些没有随标准库预先打包的包
如果您担心由于Python版本控制而无法包含某些包,则可以指定您的包需要大于或等于X的Python版本
注意:打包python包是出了名的麻烦事
我建议您查看一下pyproject.toml,它们可以像任何普通软件包一样通过pip安装,并被一些更现代的工具(如poetry)使用
您应该列出顶级第三方依赖项
不要列出Python标准库中的包和模块
请列出您的代码直接依赖的第三方依赖项,即包含以下内容的项目:
不要列出依赖项的依赖项
install_requires
应包括非标准库要求以及对其版本的约束(根据需要)例如,这将为
numpy
和scipy
声明最小版本,但允许任何版本的scikit-learn
:诸如
os
、sys
之类的包是Python标准库的一部分,因此不应包括在内正如@sinoroc所提到的,这里只应声明直接的第三方依赖关系<依赖项的em>依赖项将自动处理。(例如,
scikit-learn
取决于joblib
;当需要前者时,将安装后者)我发现阅读其他包并了解它们的
setup.py
文件是如何定义的很有帮助install_requires
应该只提到那些没有随标准库预先打包的包如果您担心由于Python版本控制而无法包含某些包,则可以指定您的包需要大于或等于X的Python版本
注意:打包python包是出了名的麻烦事
我建议您查看一下pyproject.toml,它们可以像任何普通软件包一样通过pip安装,并被一些更现代的工具(如poetry)使用
相关问题 更多 >
编程相关推荐