国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

通過deb包安裝Python庫時怎么生成pyc文件?

mengera88 / 3448人閱讀

摘要:不知道你們是否注意到,通過這個命令安裝庫后,也會自動生成對應的文件。但是通過程序或者顯示安裝已安裝文件就會發現,包中只包含了文件,并沒有包含文件。也就是說,在包安裝時,在腳本執行過程中堆剛安裝的腳本進行了編譯,生成了文件。

問題

使用Ubuntu系統或者其他基于deb包管理器系統的人,經常通過apt-get install命令來安裝Python的庫。不知道你們是否注意到,通過這個命令安裝Python庫后,也會自動生成對應的.pyc文件。但是通過synaptic程序或者dpkg -L package-name顯示安裝已安裝文件就會發現,deb包中只包含了.py文件,并沒有包含.pyc文件。那么這些.pyc文件是從哪里來的呢?

答案

我們以python3-bs4包為例來說明。如果你安裝過這個包,那么你可能可以從系統的/var/cache/apt/archives中找到python3-bs4*.deb文件。如果找不到,你可以用下面的命令下載一個:

apt-get download python3-bs4

下載后,使用系統自帶的Archive Manager打開這個這個deb文件來查看內容,如下圖所示:

其中,要安裝的文件是usr目錄,安裝包的元信息在DEBIAN目錄下。我們進入到DEBIAN目錄下來看看:

從上圖可以看出,這里免包含了deb包的很多控制文件,我們要關注的是postinst這個文件,這個文件是安裝完包的內容之后要執行的腳本,來看下內容:

postinst文件就是一個shell腳本,主要工作是執行py3compile這個命令,該命令是一個Python腳本,專門用于在安裝deb包格式的Python庫的過程中生成對應的.pyc文件。也就是說,在deb包安裝時,在post-install-script腳本執行過程中堆剛安裝的Python腳本進行了編譯,生成了.pyc文件。

題外話

deb包的內容也可以通過如下命令來查看,這里直接給出示例:

~/tmp/deb$ ls
python3-bs4_4.3.2-1ubuntu1_all.deb
~/tmp/deb$ ar vx python3-bs4_4.3.2-1ubuntu1_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.xz
~/tmp/deb$ ll
total 128
-rw-r--r-- 1 diabloneo diabloneo  1709 Dec 17 22:21 control.tar.gz
-rw-r--r-- 1 diabloneo diabloneo 58368 Dec 17 22:21 data.tar.xz
-rw-r--r-- 1 diabloneo diabloneo     4 Dec 17 22:21 debian-binary
-rw-rw-r-- 1 diabloneo diabloneo 60270 Jun  5  2014 python3-bs4_4.3.2-1ubuntu1_all.deb
~/tmp/deb$ tar -tf control.tar.gz
./
./postinst
./prerm
./md5sums
./control

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/45317.html

相關文章

  • 將 exe 文件反編譯成 Python 腳本

    摘要:打包成單文件所使用的命令為打包成文件夾所使用的命令為不管是哪種打包方式都會留下一個文件。這樣我們只需將腳本文件和腳本文件放置到同一文件夾下,運行我們的腳本。可以看到已經完美的反編譯出其中的腳本好了,相信大家已經明白了反編譯的原理。 近期閱讀了一篇很感興趣的文章,為免后續文章被刪無法再閱讀,現...

    xbynet 評論0 收藏0
  • python setup.py 淺析

    摘要:淺析參數說明對于所有列表里提到的純模塊做處理需要在腳本里有一個包名到目錄的映射。闡明包名到目錄的映射,見鍵代表了包的名字,空的包名則代表不在任何包中的頂層包。最終會在下生成可執行文件,調用制定的函數實例分析 python setup.py 淺析 setuptools.setup() 參數說明 packages 對于所有 packages 列表里提到的純 Python 模塊做處理 需要...

    sevi_stuo 評論0 收藏0
  • [零基礎學python]模塊的加載

    摘要:找到模塊文件之后,將其編譯成字節碼,就是那個文件里面的關于字節碼,下面會介紹,請繼續閱讀。當然,如果根本就沒有找到同名的源文件,只有字節碼文件,那么就只能運行這個了。執行就是前面已經編譯的模塊字節碼文件,順理成章要執行了。 不管是用import還是用from mmmm import *的方式導入模塊,當程序運行之后,回頭在看那個存儲著mmmm.py文件的目錄中(關于mmmm.py文件可...

    tinylcy 評論0 收藏0
  • Python基礎之(十)模塊

    摘要:是回調函數,當鏈接服務器和相應數據傳輸完畢時觸發本函數可選。僅僅是針對的,在中,已經沒有這個模塊了,取代它的是。由于以流式讀取文件,從而速度較快,切少占用內存,但是操作上稍復雜,需要用戶實現回調函數。 編寫模塊 模塊是程序 模塊就是一個擴展名為.py的Python程序。 編寫模塊 #!/usr/bin/env python # coding=utf-8 lang = python 引...

    jlanglang 評論0 收藏0
  • Python在什么時候會生成pyc文件呢?

    Python在什么時候會生成pyc文件呢? ??事情大概是這樣的,之前我一直以為python文件在執行過之后就會生成pyc文件,后來一次偶然情況下,發現還是自己too young too simple,在看過其他大神文章并且自己驗證之后,發現還是有點意思的,權當沒事寫點文章吧。 什么是pyc文件呢? ??簡單來說,pyc文件就是Python的字節碼文件,我們都知道Python是一種全平臺的解釋性語...

    MobService 評論0 收藏0

發表評論

0條評論

mengera88

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<