Python:`dist`和`sdist`之间有性能差异吗?

时间:2014-06-03 06:01:08

标签: python performance setuptools

Python setuptools可以创建源代码分发:

python setup.py sdist # create a source distribution (tarball, zip file, etc.)

或二进制分发:

python setup.py bdist   # create a built (binary) distribution

据我了解,不应有任何性能差异:

  • bdist安装二进制包中已编译的.pyc文件。
  • sdist.py个文件编译为.pyc个文件,然后安装它们。

执行时,编译.pyc文件的方式无关紧要 - 它们应具有相同的性能。

distsdist python包之间是否存在性能差异?

1 个答案:

答案 0 :(得分:4)

如果你有纯Python代码,那么部署时间的差异就会很小。请注意,.py.pyc之间的效果没有差异,但后者第一次读取的速度会略快一些。所谓的优化 .pyo只剥离断言,并且可选地去除文档字符串,因此它们没有得到很好的优化。

当您拥有C文件时,会发生很大的不同。如果正确引用,sdist将包含它们,但用户将需要一个有效的编译器,Python头文件等。此外,您将不得不花时间在每个客户端上构建它们。相同的分发对您部署的任何平台都有效。

另一方面,bdist编译一次代码。在客户端安装是立竿见影的,因为它们不需要构建任何东西,并且因为它们不需要安装编译器而更容易。缺点是你必须为该平台构建。只要您安装并配置了正确的工具,Setuptools就能够进行交叉编译。