3

包分开分发的原因是什么?

  • 为什么我们有单独的“附加”包,如 pandas、numpy?
  • 既然这些模块看起来如此重要,为什么这些不是 Python 本身的一部分呢?

是否预装了 Python 的“单一发行版”?

  • 如果将“核心”与附加功能分开是设计的一部分,那么在这种情况下,它至少应该在您启动 Python 时立即“预导入”。

  • 如果存在这样的分布,我在哪里可以找到它们?

4

4 回答 4

9

其中许多工具,包括核心 Python,是由不同的团队单独开发和分发的,因此由聚合器来管理它们并将它们放入单个分发中。以下是一些值得注意的例子:

于 2017-03-26T21:55:45.653 回答
3

这有点像在问“为什么不是每个电机都配有汽车?”

虽然没有马达的汽车毫无用处,但反过来并不成立:大多数马达甚至不用于汽车。当然,可以尝试将整车出售给想要拥有发电机的人,但他们不会购买。
此外,设计汽车的人可能不是制造发动机的最佳人选,反之亦然。

与python类似。大多数 python 发行版不与 numpy、scipy 或 pandas 一起使用。使用这些包分发 python 会产生巨大的开销。

但是,对于将这些模块与相应的 python 结合并确保一切顺利交互的预构建发行版当然有强烈的需求。一些例子是 Anaconda、Canopy、python(x,y)、winpython 等。因此,如果最终用户只是想要一辆可以运行的汽车,最好选择其中一个,而不是从头开始安装所有东西。其他确实希望始终拥有最新版本的用户可能会选择自己修补它们。

于 2017-03-26T23:01:40.647 回答
2

您可以使用“预导入”模块以及预运行代码,使用交互式启动文件进行交互式解释启动。
或者,您可以使用自定义模块在每次调用 python 时预运行代码。

关于 pandas 和 numpy 是否应该成为标准库的一部分 - 这是一个见仁见智的问题。

于 2017-03-26T21:50:45.523 回答
-1

PyPi 目前有超过 100,000 个可用的库。我敢肯定,有人认为这些都很重要。

pip install考虑到 a在虚拟环境中的容易程度,为什么需要或想要预加载库?

于 2017-03-26T22:18:11.280 回答