<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pyd 和 pyc 究竟是個什么東西?

          共 1743字,需瀏覽 4分鐘

           ·

          2022-01-02 09:29

          ? ? 點擊上方?月小水長?并?設(shè)為星標(biāo),第一時間接收干貨推送

          這是?月小水長?的第?108?篇原創(chuàng)干貨

          目前公眾號平臺改變了推送機(jī)制,點“贊”、點“在看”、添加過“星標(biāo)”的同學(xué),都會優(yōu)先接收到我的文章推送,所以大家讀完文章后,記得點一下“在看”和“贊”。

          寫在開篇

          今天公眾號推送的另一篇其實已經(jīng)稍微介紹了 pyd 和 pyc,這里單獨成文,一為補(bǔ)充,二為日后快速索引到相關(guān)知識點。

          pyd?特點及生成方式

          我們知道?windows 系統(tǒng)有許多 DLL 后綴的文件,即動態(tài)鏈接庫,在運行時鏈接到調(diào)用程序。在運行時鏈接到 DLL 之類的庫的主要優(yōu)點是,它可以促進(jìn)代碼重用,模塊化體系結(jié)構(gòu)和更快的程序啟動。結(jié)果,DLL 在 Windows 操作系統(tǒng)周圍提供了許多功能。pyd 這個 d 就是取自于 DLL,只能運行在 windows 系統(tǒng)上
          假設(shè)我們有一個 demo.py,想要打成 demo.pyd;首先需要在 demo.py 同目錄下新建個 setup.py 文件,內(nèi)容如下
          from distutils.core import setupfrom?Cython.Build?import?cythonizesetup(ext_modules=cythonize("demo.py"))

          然后在命令行或終端 cd 到這個目錄下,輸入一行命令之

          python setup.py build_ext --inplace

          當(dāng)前目錄下就會生成一個? build 文件夾,一個 .c 文件,還有我們的主人翁?.pyd 文件自動生成的名字并不是 demo.pyd,而是?

          demo.cp36-win_amd64.pyd

          這個 cp36 和 win_amd64 視 python 版本和操作系統(tǒng)而定。我們需要把它改成 demo.pyd,注意,是只能改成 demo.pyd;改成其他任何名字都不行,使用時會 import error。使用該 pyd 方式如下:

          import demofrom?demo?import?{{類名|函數(shù)名}}

          pyc?特點及生成方式

          而我們安裝的 python 目錄下有許多 pyc 文件,這個 c 是編譯 compile 過的意思,可以使用 python 解釋器編譯 py 文件 成 pyc 字節(jié)碼文件。使用 pyc 可以加快程序的加載速度,而不能加快程序的實際執(zhí)行速度,這就是解釋為什么我們安裝 python 目錄很多第三方庫下是 pyc 文件的原因,因為它可以使得 import 一些第三方庫的速度加快。由于 .pyc 文件是編譯好的字節(jié)碼,它是獨立于平臺的,因此可以在不同體系結(jié)構(gòu)的計算機(jī)之間共享。其實還有一個和 pyc 類似的字節(jié)碼文件 pyo,一般 pyo 替代未經(jīng)優(yōu)化而創(chuàng)建的 pyc 文件,這里就不展開了~

          使用下面一行命令就能將當(dāng)前目錄下的所有?py 文件打成 pyc

          python?-m?compileall?./

          pyc 的改名規(guī)則和 import?使用同 pyd !!!


          還有一點需要注意的是,由于 pyc 是由特定的 python 解析器生成的,它雖然能跨平臺,但是不能跨版本,也只能運行在特定的 Python 版本上。如果 Python 版本不對,它會報 ImportError: bad magic number 錯誤。

          Pycharm 文件目錄默認(rèn)不索引pyc?

          ?pyc 文件放到 Pycharm 中并不會顯示它的存在?,但是確實實在存在于我們的文件夾之中的

          Pycharm 中文件目錄


          文件瀏覽器中文件目錄

          這是為什么呢?我猜測是 Pycharm 把 pyc exclude 排除顯示了,上圖 Pycharm 的 External Libraries 就是我們的 python 解析器,它有許許多多 pyc,如果全部顯示。那么 index 索引將會非常大,嚴(yán)重會導(dǎo)致電腦卡死。

          但是 pyd 就沒有這種問題~

          如不足之處歡迎批評指正~

          瀏覽 200
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  看国内看国内黄色一级片和国产麻豆 | 欧美一级黄色录像在线视频官网 | 中文字幕免费黄色电影 | 东京热AV中文字幕 | 日韩中文字幕高清无码视频 |