setup.py install_requires内置程序包:包含还是省略?

时间:2019-10-23 21:29:33

标签: python pip setup.py python-wheel

我有一个制作的python包。它在多个位置使用datetime。我注意到在全新安装的python上,我可以毫无问题地进行import datetime的操作。因此,python内置了datetime

如果我将datetime作为install_requires中的一项放置在setup.py中,则即使内置软件包已可用,它似乎也会下载pypi软件包datetime。在某些情况下,例如使用multiprocessing,pypi软件包可能需要额外的东西(对于pypi multiprocessing,它需要gcc-c++安装在我的CentOS上,而内置multiprocessing没有这样的要求。

问题:

  • 如果使用内置包,我应该在install_requires下包括它们吗?
  • 除了创建新的virtualenv并尝试导入内容之外,还有没有其他更简便的方法来查看哪些包是内置的,哪些不是?
  • 谁拥有这些内置软件包的pypi版本?是随机的人,还是python核心团队提供了这些经过审核的软件包? (我知道随机的人可以提供任意软件包,但我无法弄清楚pypi上的内置软件包是否正确。)

1 个答案:

答案 0 :(得分:2)

  

它似乎下载了pypi包datetime

不完全是。它将下载名为DateTime的包,其顶层名称为DateTime,而不是datetime

  

如果我使用内置软件包,我应该在install_requires下包含它们吗?

不。 install_requires用于列出外部第三方软件包,而不是内置软件包,而不是标准软件包。

  

是否有一种更简便的方法来查看哪些软件包是内置的,哪些不是?

一个是datetime,另一个是DateTime

  

谁拥有这些内置软件包的pypi版本?

页面https://pypi.org/project/DateTime/的作者名称为:Zope Foundation and Contributors。并列出当前的维护者。列出的首页是https://github.com/zopefoundation/DateTime