python
包、模組與檔案系統的對應關係
包:對應於資料夾,模組:檔案
模組搜尋路徑
匯入乙個叫
spam
的模組時,直譯器先在當前目錄中搜尋名為
spam.py
的檔案,然後在環境變數
pythonpath
指向的目錄列表中搜尋,然後是環境變數
path
中的路徑列表。如果
pythonpath
沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄,在
unix
中,通常是
/usr/local/lib/python
。實際上,直譯器由
sys.path
變數指定的路徑目錄搜尋模組,該變數初始化時預設包含了輸入指令碼(或者當前目錄),
pythonpath
和安裝目
錄使用該方法加入
sys.path
只能在執行時,下次執行編譯器時就不存在,這裡
modulepath
可以是包含
.py/pyc/pyo/pyw
等檔案的
zip或
模組import
前都會呼叫該檔案
因此,可以在
__init__.py
檔案中定義
__all__
通過定義列表
__all__
,模組可以精確控制
from module import *
匯入的名稱集合,比如
module.py
__all__ = [『bar』, 『someclassname』, 『someproperty』, 『somefunction』]
.表示與呼叫模組相同的目錄
..表示上級模組,比如
from .. import somemodule
import somepack
somepack.somemodule(xx) #
失敗! 但由於
import somepack
會執行somepack
下的__init__.py
,所以如果
__init__.py
中有 from . import somemodule
之類的語句,則
somepack.somemodule(xx)
可以執行。
一定的格式規範
新增setup.py
檔案
並非完全是解釋性語言,它是有編譯的,先把原始碼
py檔案編譯成
pyc或者
pyo,然後由
python
的虛擬機器執行,相對於
py檔案來說,編譯成
pyc和
pyo本質上和
py沒有太大區別,只是對於這個模組的載入速度提高了,並沒有提高**的執行速度,通常情況下不用主動去編譯
pyc檔案,文件上說只要呼叫了
import model
那麼model.py
就會先編譯成
pyc然後載入
pyc:預編譯過的
優化的預編譯
python -o -m py_compile file.py
windows
下.py
用python.exe
執行,.pyw
用pythonw.exe 執行跟
python.exe
比較起來,
pythonw.exe
有以下的不同:
1)執行時不會彈出控制台視窗(也叫
dos
視窗) 2
)所有向原有的
stdout
和stderr
的輸出都無效
3)所有從原有的
stdin
的讀取都只會得到
eof
.pyw
格式是被設計來執行開發完成的純圖形介面程式的。
純圖形介面程式的使用者不需要看到控制台視窗。
Python模組和包的概念
模組 模組是python組織 的基本方式。乙個python指令碼可以單獨執行,也可以匯入到另乙個指令碼中執行,當指令碼被匯入執行時,我們將其稱為模組 module 所有的.py檔案都可以作為乙個模組匯入。模組名與指令碼的檔名相同。模組是乙個可以匯入的python指令碼檔案。例如我們編寫了乙個名為he...
Python 模組和包的概念
python 模組和包的概念 模組 包 模組 modue 的概念 在電腦程式的開發過程中,隨著程式 越寫越多,在乙個檔案裡 就會越來越長,越來越不容易維護。為了編寫可維護的 我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式。在python...
Python 模組和包的概念
模組 modue 的概念 在電腦程式的開發過程中,隨著程式 越寫越多,在乙個檔案裡 就會越來越長,越來越不容易維護。為了編寫可維護的 我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式。在python中,乙個.py檔案就稱之為乙個模組 mo...