Python模塊搜索路徑

      網(wǎng)友投稿 917 2022-05-30

      當(dāng)一個(gè)名為 spam 的模塊被導(dǎo)入的時(shí)候,解釋器首先尋找具有該名稱的內(nèi)置模塊。如果沒(méi)有找到,然后解釋器從 sys.path 變量給出的目錄列表里尋找名為 spam.py 的文件。sys.path 初始有這些目錄地址:

      包含輸入腳本的目錄(或者未指定文件時(shí)的當(dāng)前目錄)。

      PYTHONPATH (一個(gè)包含目錄名稱的列表,它和shell變量 PATH 有一樣的語(yǔ)法)。

      取決于安裝的默認(rèn)設(shè)置

      Python模塊搜索路徑

      注解 在支持符號(hào)鏈接的文件系統(tǒng)上,包含輸入腳本的目錄是在追加符號(hào)鏈接后才計(jì)算出來(lái)的。換句話說(shuō),包含符號(hào)鏈接的目錄并 沒(méi)有 被添加到模塊的搜索路徑上。

      在初始化后,Python程序可以更改 sys.path。包含正在運(yùn)行腳本的文件目錄被放在搜索路徑的開(kāi)頭處, 在標(biāo)準(zhǔn)庫(kù)路徑之前。這意味著將加載此目錄里的腳本,而不是標(biāo)準(zhǔn)庫(kù)中的同名模塊。 除非有意更換,否則這是錯(cuò)誤。更多信息請(qǐng)參閱?python標(biāo)準(zhǔn)模塊。

      “編譯過(guò)的”P(pán)ython文件

      為了加速模塊載入,Python在?pycache?目錄里緩存了每個(gè)模塊的編譯后版本,名稱為 module.version.pyc ,其中名稱中的版本字段對(duì)編譯文件的格式進(jìn)行編碼; 它一般使用Python版本號(hào)。例如,在CPython版本3.3中,spam.py的編譯版本將被緩存為 __pycache__/spam.cpython-33.pyc。此命名約定允許來(lái)自不同發(fā)行版和不同版本的Python的已編譯模塊共存。

      Python根據(jù)編譯版本檢查源的修改日期,以查看它是否已過(guò)期并需要重新編譯。這是一個(gè)完全自動(dòng)化的過(guò)程。此外,編譯的模塊與平臺(tái)無(wú)關(guān),因此可以在具有不同體系結(jié)構(gòu)的系統(tǒng)之間共享相同的庫(kù)。

      Python在兩種情況下不會(huì)檢查緩存。首先,對(duì)于從命令行直接載入的模塊,它從來(lái)都是重新編譯并且不存儲(chǔ)編譯結(jié)果;其次,如果沒(méi)有源模塊,它不會(huì)檢查緩存。為了支持無(wú)源文件(僅編譯)發(fā)行版本, 編譯模塊必須是在源目錄下,并且絕對(duì)不能有源模塊。

      給專業(yè)人士的一些小建議:

      你可以在Python命令中使用 -O 或者 -OO 開(kāi)關(guān), 以減小編譯后模塊的大小。 -O 開(kāi)關(guān)去除斷言語(yǔ)句,-OO 開(kāi)關(guān)同時(shí)去除斷言語(yǔ)句和?doc?字符串。由于有些程序可能依賴于這些,你應(yīng)當(dāng)只在清楚自己在做什么時(shí)才使用這個(gè)選項(xiàng)。“優(yōu)化過(guò)的”模塊有一個(gè) opt- 標(biāo)簽并且通常小些。將來(lái)的發(fā)行版本或許會(huì)更改優(yōu)化的效果。

      一個(gè)從 .pyc 文件讀出的程序并不會(huì)比它從 .py 讀出時(shí)運(yùn)行的更快,.pyc 文件唯一快的地方在于載入速度。

      compileall 模塊可以為一個(gè)目錄下的所有模塊創(chuàng)建.pyc文件。

      關(guān)于這個(gè)過(guò)程,PEP 3147 中有更多細(xì)節(jié),包括一個(gè)決策流程圖。

      緩存 Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:最新!海關(guān)總署:全面啟用海關(guān)行政電子印章
      下一篇:愛(ài)租機(jī)攜手云合同電子合同,簽安全合同租低價(jià)手機(jī)
      相關(guān)文章
      亚洲av成人一区二区三区观看在线 | 国产AⅤ无码专区亚洲AV| 亚洲 欧洲 视频 伦小说| 亚洲国产精品综合久久网各| 久久久亚洲欧洲日产国码是AV | 亚洲精品自偷自拍无码| 美女视频黄免费亚洲| 亚洲婷婷第一狠人综合精品| 亚洲伊人久久大香线蕉在观| 亚洲中文字幕久在线| 亚洲综合中文字幕无线码| 亚洲av午夜精品无码专区| 亚洲AV无码久久久久网站蜜桃 | 亚洲AV日韩综合一区尤物| 色老板亚洲视频免在线观| 国产色在线|亚洲| 亚洲色精品三区二区一区| 亚洲欧洲无码AV不卡在线| 亚洲AV无码AV日韩AV网站| 豆国产96在线|亚洲| 亚洲国产电影av在线网址| 亚洲另类少妇17p| 亚洲亚洲人成综合网络| 亚洲AV无码精品色午夜在线观看| 亚洲AV成人精品网站在线播放| 中文字幕亚洲色图| 亚洲天堂一区二区三区四区| 一本色道久久综合亚洲精品蜜桃冫| 亚洲乱亚洲乱妇无码| 国产午夜亚洲精品不卡免下载| 亚洲高清偷拍一区二区三区 | 亚洲av产在线精品亚洲第一站| 亚洲熟妇AV日韩熟妇在线| 亚洲丁香婷婷综合久久| 亚洲第一页日韩专区| 亚洲精品无码mv在线观看网站 | 99久久精品国产亚洲| 亚洲伊人久久大香线蕉结合| 亚洲国产精品ⅴa在线观看| 国产成人亚洲综合a∨| 国产亚洲精午夜久久久久久|