日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python程序编译之后、找不到生成的pyc文件_为什么主要的可运行的Python脚本没有被编译为pyc文件,如模块?...

發(fā)布時間:2025/3/12 python 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python程序编译之后、找不到生成的pyc文件_为什么主要的可运行的Python脚本没有被编译为pyc文件,如模块?... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當模塊加載時,py文件被“字節(jié)編譯”為pyc文件。時間戳記記錄在pyc文件中。

這樣做不會使其運行速度更快,但加載速度更快。

因此,當您加載它們時,“字節(jié)編譯”模塊是有意義的。

[編輯:包括筆記,參考]

From PEP 3147 on “Byte code

compilation”:

CPython將其源代碼編譯成“字節(jié)碼”,出于性能考慮,

只要源文件發(fā)生更改,它就會將該字節(jié)碼緩存在文件系統(tǒng)上。

這使得加載Python模塊的速度更快,因為編譯階段

可以繞過。當您的源文件是foo.py時,CPython緩存該字節(jié)

源代碼旁邊的一個foo.pyc文件中的代碼。

How byte code compiled files are

tracked with respect to Python version

and “py” file changes:

它也在編譯的字節(jié)碼“.pyc”文件中插入一個魔術(shù)數(shù)字。

當Python更改字節(jié)碼格式時,通常會在主要版本中更改。

這樣可以確保為先前版本的VM構(gòu)建的pyc文件不會導致問題。

時間戳用于確保pyc文件與之前的py文件相匹配

用來創(chuàng)建它。當魔術(shù)數(shù)字或時間戳不匹配時,

py文件被重新編譯并寫入一個新的pyc文件。

“pyc”文件在Python主要版本中不兼容。當Python找到一個pyc

文件與不匹配的魔術(shù)數(shù)字,它回落到較慢的過程

重新編譯源碼。

這就是說,如果你簡單地分配為同一個平臺編譯的“.pyc”文件將不再工作,如果python版本改變了。

In Nutshell

如果有一個字節(jié)編譯文件“.pyc”,它的時間戳表示它是最近的,那么它將被加載其他明智的python將回退在較慢的方式加載“.py”文件。 “.py”文件的執(zhí)行性能不受影響,但“.pyc”文件的加載速度比“.py”文件快。

考慮執(zhí)行導入b.py的a.py

Typical total performance = loading time (A.py) + execution time (A.py) +

loading time (B.py) + execution time (B.py)

Since loading time (B.pyc) < loading time (B.py)

You should see a better performance by using the byte compiled "pyc" files.

也就是說,如果你有一個很大的腳本文件X.py,將它模塊化并將內(nèi)容移動到其他模塊,就可以利用字節(jié)碼編譯文件的較低的加載時間。

另一個推論是,模塊往往比腳本或主文件更穩(wěn)定。因此它完全不是字節(jié)編譯。

References

總結(jié)

以上是生活随笔為你收集整理的python程序编译之后、找不到生成的pyc文件_为什么主要的可运行的Python脚本没有被编译为pyc文件,如模块?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。