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

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文件的方式无关紧要 – 它们应具有相同的性能.

dist和sdist python包之间有任何性能差异吗?

解决方法:

如果您有纯Python代码,那么部署时间的差异将很小.请注意,.py和.pyc之间的性能没有差别,除了后者第一次读取稍快一些.所谓的优化.pyo只剥离断言,并且可选地去除文档字符串,因此它们没有得到很好的优化.

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

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

上一篇:为什么py2app .app比同一个python程序需要更长的时间才能启动?


下一篇:如何在Python包中安全地“伪造”模块