python模块导入_python模块导入
不同的執行方式:
從IDE中執行,python程序由IDE設置環境決定。
從系統中執行,python程序由環境變量中的系統變量path決定,從上往下選擇。
模塊導入順序:
系統包優先級最高 > 同目錄 > sys.path,之所以有這樣的差別是因為當前執行目錄會優先加入sys.path 的首位。
sys.path是python的搜索模塊的路徑集。包含當前執行目錄、PYTHONPATH系統變量目錄、python執行程序目錄、python執行程序目錄下site-packages下的pth文件.
sys.path除了通過PYTHONPATH及pth文件電腦全局增加搜索模塊的路徑,也可以在程序中局部增加搜索模塊的路徑。
# test.py
import sys, os
# 當前目錄沒有hi模塊,報錯找不到模塊
import hi
Traceback (most recent call last):
ImportError: No module named hi
# hi模塊所在位置: /data/hi.py
# 將hi所在模塊加入sys.path
sys.path.append("/data")
# 可以正常工作了
import hi
###############################################
#test2.py
import imp
imp.load_source("hi", "C://data/hi.py")
import hi
# 可以自己指定模塊的名字,相當與 import hi as h2
imp.load_source("h2", "C://data/hi.py")
import h2
模塊導入方式:Python導入模塊的幾種姿勢| 編程派 | Coding Python?codingpy.com
導入時執行:
當導入包時,_init_會先執行;當導入一個模塊時,模塊的頂層變量會被執行,包括全局變量,類以及函數的聲明(類對象,函數對象將被創建,不會被調用),因此在編寫模塊時一定要注意消除副作用(函數的調用)。
import 語句 和 from 語句
能被 import 的包括:package,package 中的模塊,模塊中的變量。影響 import 的屬性是 __all__, __all__ 是個list,能夠影響被 package 中 以 from package import * 被導出的模塊,即定義在__all__ 中的模塊才會被 from package import * 導出。
__file__:
當模塊以文件的形式出現__file__指的是模塊文件的路徑名,以相對路徑執行__file__是相對路徑,以絕對路徑執行__file__是絕對路徑。
為了保證__file__每次都能準確得到模塊的正確位置,最好再取一次絕對路徑os.path.abspath(__file__)。
sys.modules 的作用
既然python是在 sys.path 中搜索模塊的,那載入的模塊存放在何處?答案就是 sys.modules,是存放已載入模塊的地方。模塊一經載入,python 會把這個模塊加入 sys.modules 中供下次載入使用,這樣可以加速模塊的引入,起到緩存的作用。
獲取模塊的路徑
借助 sys.modules和__file__, 可以動態獲取所有已加載模塊目錄和路徑:
def get_module_dir(name):
path = getattr(sys.modules[name], '__file__', None)
if not path
raise AttributeError('module %s has not attribute __file__'%name)
return os.path.dirname(os.path.abspath(path))
Python 環境變量
下面幾個重要的環境變量,它應用于Python:
變量名 描述
PYTHONPATH PYTHONPATH是Python搜索路徑,默認我們import的模塊都會從PYTHONPATH里面尋找。
PYTHONSTARTUP Python啟動后,先尋找PYTHONSTARTUP環境變量,然后執行此變量指定的文件中的代碼。
PYTHONCASEOK 加入PYTHONCASEOK的環境變量, 就會使python導入模塊的時候不區分大小寫.
PYTHONHOME 另一種模塊搜索路徑。它通常內嵌于的PYTHONSTARTUP或PYTHONPATH目錄中,使得兩個模塊庫更容易切換。
總結
以上是生活随笔為你收集整理的python模块导入_python模块导入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器raid卡装虚拟机,DELLR73
- 下一篇: python教程下载百度云盘到手机_Py