![](/img/trans.png)
[英]What is the difference between an 'sdist' .tar.gz distribution and an python egg?
[英]Python: Is there a performance difference between `dist` and `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就能夠進行交叉編譯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.