【发布时间】:2020-04-09 21:03:57
【问题描述】:
在使用 setuptools 打包 Python 应用程序时,我正在使用我的应用程序的所有 PyPI 依赖项填充 install_requires 列表。我发现自己手动梳理了所有资源以找到这些。这是正确的方法吗?还是可以以某种方式自动填充此列表?
【问题讨论】:
-
您应该只列出
install_requires中的直接依赖项(而不是间接依赖项,即您的依赖项的依赖项),因此这应该是一个相对较短的列表,您可能应该手动整理此列表。当然可能有自动化的方法,我想我以前见过这样的工具,但我并没有真正看到重点,所以我没有使用它们,也记不起它们的名字。 -
嗨 Sinoroc,很高兴知道我做得对,但是 - 好奇 - 为什么这个列表应该由手工而不是自动管理?我发现自己最初缺少直接依赖项,因为我错过了查看源文件。
-
再想一想,如果有一个工具可以分析当前项目的代码,并告诉你环境中安装的哪些库是当前项目的直接依赖,那就太好了。这确实会有所帮助。到目前为止,我一直都是手工完成的,我使用tox,如果我错过了一个直接依赖项,它可能会告诉我,但如果
install_requires中有一个不必要的库,则不会说什么。 -
我之前的评论中缺少:我将 tox 与 linting 工具(例如 pylint)结合使用,以便在某些 imports 无法解析,表示
install_requires中缺少某些库。 -
也许看看pipreqs,在这里看到:stackoverflow.com/a/31684470/11138259
标签: python python-3.x setuptools