八 模組與包

2021-08-27 11:57:25 字數 2174 閱讀 5256

在python中,模組就是乙個**檔案,模組中可以定義類、函式、變數,也可以包含可執行的**。

使用import匯入。

1.1 搜尋路徑

搜尋模組時,python會按照sys.path列表中的路徑,依次進行搜尋。可以通過sys.path檢視搜尋路徑。

將模組的路徑新增到sys.path路徑的三種方法:

(1)動態新增

(2)若經常用到,可以在python安裝目錄下的lib\site-packages資料夾下建立乙個純文字檔案,擴充套件名為.path。

(3)修改環境變數。

1.2 匯入模組

可以一次匯入多個模組

1.3 匯入指定的模組屬性

如:from xlutils.copy import copy

1.4 載入模組

在程式開發中,乙個模組可以在多處被import,但python只會匯入一次,因為所有載入到記憶體的模組都會被放入到sys.modules中。

載入模組會導致這個模組被「執行」。

1.5 命名空間

python程式執行時存在內建命名空間、全域性命名空間和區域性命名空間。

1.6 「編譯」的python檔案

python中一旦被引用的模組(假設為example.py)被成功編譯,其對應的編譯版本example.pyc就會被建立。如果建立成功,那麼example.py的修改時間會記錄在example.pyc中,下次載入時,如果兩個檔案的修改時間不匹配,則.pyc檔案就會被忽略。如果有可用的.pyc檔案,則會使用.pyc檔案提高模組的載入速度。當程式需要載入多個模組時,.pyc檔案能夠有效地提高程式的啟動速度。

1.7 自動匯入模組

sys模組的modules變數中儲存了完整且成功匯入的模組資訊。

1.8 迴圈匯入

迴圈匯入(circular import)是一種死迴圈,即a**需要b才能執行,而偏偏b**是建立在a**基礎上。

包(package)可以看成模組的集合,只要乙個資料夾下面有__init__.py檔案,那麼該資料夾就可以看作乙個包。包下面還可以有子包。

匯入包的過程與匯入模組的基本一致,只是匯入包的時候會執行目錄下的__init__.py,而不是模組裡的語句。另外,如果只是單純地匯入包,而包的__init__.py中又沒有明確的其他初始化操作,那麼此包下面的模組是不會自動匯入的。

例如,乙個簡章的包目錄

pac/

__init__.py

subpac1/

__init__.py

modu1.py

subpac2/

__init__.py

modu1.py

匯入方法:

from pac.subpac1 import modu1

import pac.subpac1.modu1

python提供了distutils、setuptools、py2exe、pyinstaller、cx_freeze等程式打包工具,其中,setuptools是distutils的增強工具,py2exe、pyinstaller、cx_freeze是windows平台下製作exe檔案的工具。distutils包含在python的標準版發行包中。

3.1 distutils

例如,首先建立乙個hello.py檔案。

(1)建立乙個setup.py檔案,內容如下:

from distutils.core import setup

setup(name='hello',version='1.0',description='hello ccc',author='cheng',py_modules=['hello'])

(2)執行打包命令:

>>>python setup.py sdist

結果:該命令建立了dist目錄,並將要打包的檔案複製到hello-1.0.zip的壓縮檔案中。

3.2 py2ext

py2exe暫時到目前只支援到3.4版本(包括cxfreeze),在3.5版本中會報錯。

(1)建立建立乙個setup.py檔案,內容如下:

from distutils.core import setup

import py2exe

setup(console=['hello.py'])

(2)執行命令:

>>>python setup.py py2exe

第八章 模組與包

1.模組的概念 模組是乙個儲存了python 的檔案,其中可以包含變數 函式或類的定義,也可以包含其他各種python語句。2.import用於匯入整個模組,可用as為匯入的模組指定乙個別名。使用import匯入模組後,模組中的物件均以 模組名 別名 物件名稱 的方式來引用。3.模組的匯入 若只想匯...

python模組與包

路徑修改 命令列怎麼檢視路徑,修改路徑 列印當前搜尋路徑 import sys sys.path sys.path import os os.getcwd os.chdir c www 模組實現構建模組的初衷就是將一些同類的東西進行打包,以免汙染全域性空間,在python的模組裡,對需要隱藏的屬性和...

python 模組與包

模組與包 1.什麼是模組 在 python 中,乙個.py檔案就稱之為乙個模組 module 模組的優點 大大提高了 的可維護性 編寫 不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用 2.匯入模組的幾種方式 4.模組的分類 1 內建模組 os,sys,dnspython,socket,tim...