本質:匯入模組的本質就是把python檔案解釋一遍,匯入包的本質就是把包檔案下面的init.py檔案執行一遍。
1)同目錄下模組的匯入
#同級目錄下模組的匯入
import module_name #直接匯入模組
import module1_name,module2_name #匯入多個模組 使用:模組名.函式名
from modeule_name import * #匯入模組中所有函式和變數等。。。不推薦使用
from modeule_name import m1,m2,m3 #只匯入模組中函式m1,m2,m3 使用:直接使用m1,m2,m3就可以
from modeule_name import m1 as m #匯入module_name模組中函式m1並且將函式重新複製給m 使用:直接用呼叫m
2)不同目錄下模組的匯入
#不同目錄下模組的匯入 當前檔案main.py
#目錄結構
# ├── credit_card
# │# ├── core
# │ ├── __init__.py
# │ └── main.py # 當前檔案
# ├── conf
# │ ├── __init__.py
# │ └── setting.py
# │ └── lzl.py
import sys,os
#獲取當前目錄的上上級目錄絕對路徑,也就是credit_card
credit_card_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#把credit_card目錄加入到系統路徑
sys.path.insert(0,credit_card_path)
#檢視系統環境路徑
print(sys.path)
例子:如果main資料夾要用conf資料夾下的setting檔案,直接匯入是不行的
應該:fron conf import setting
setting.函式名() #這樣執行setting模組中的函式
3)不同目錄下模組連環匯入
#不同目錄多個模組之間互相匯入
#目錄結構
# ├── credit_card
# │# ├── core
# │ ├── __init__.py
# │ └── main.py # 當前檔案
# ├── conf
# │ ├── __init__.py
# │ └── setting.py
# │ └── lzl.py
如果在setting檔案中呼叫模組lzl.py,可以用語句 import lzl,但是如果這樣,
我們在main.py檔案中呼叫setting檔案時,就會報錯#importerror: no module named 'lzl'
這個時候我們需要將 import lzl 換為 from . import lzl
然後main.py檔案中呼叫setting檔案時,才可以正常執行。
4)不同目錄多個模組相互匯入,用相對路徑
root
├── credit_card
├── readme.md
├── core
│ ├── __init__.py
│ └── main.py
├── conf
│ ├── __init__.py
│ └── setting.py
│ └── lzl.py
lzl.py檔案內容:
def name():
print("name is lzl")
setting.py檔案內容:
#當前檔案settings,呼叫lzl.py模組 相對路徑
from . import lzl #通過相對路徑匯入模組lzl
def set():
print("in the settings")
lzl.name() #執行lzl模組下的函式
set() #執行函式set
core目錄下的檔案中的mian.py檔案內容:
#不同目錄之間連環import 當前檔案main.py 相對路徑
from root.credit_card.conf import settings
settings.set() #執行settings下的函式
注意:lzl.py以及settings.py檔案未變,main.py檔案去掉了繁雜的sys.path新增的過程,
直接執行from root.credit_card.conf import settings,使用相對路徑,更加
簡潔方便!
匯入模組 和 包
一 模組 模組一共三種 python標準庫 第三方模組 應用程式自定義模組 在cmd命令終端,檢視命令os 來自第三方 time模組來自第三方 模組兩種執行方式 1 用於啟動執行 2 用於被呼叫執行 key import module 將執行檔案 module 的目錄路徑插入到sys.path的第乙...
python深入之包和模組,包和模組的匯入方式
關於包和模組 2 包 是乙個有層級的目錄結構,包含n個模組或者n個子包,包中一定要有 init py檔案 3 庫 是完成一定功能的 集合,表現形式是乙個模組,或包 4 框架 是乙個架構層面的概念,為解決乙個開放性問題而設計的具有一定約束性的支撐結構,通過框架可以快速實現乙個解決問題的骨架,後面按照框...
匯入模組 包
什麼是模組 乙個模組就是包含了python定義和宣告的檔案,檔名就是模組名字加上.py 但其實import載入的模組分為4個通用類別。1 使用python編寫的 2 已被編譯為共享庫或dll的c或c 擴充套件 3 包好一組模組的包 4 使用c編寫並鏈結到python直譯器的內建模組 如何匯入模組 同...