python對於跨包調用函數時,經常會提示模塊不存在的問題,主要是python程式執行時,搜索路徑導致的,python程式執行的路徑依次是: (1)程式根目錄(2)環境變數(3)標準庫目標(D:\Python27\Lib 標準庫是在lib文件下)(4)第三方庫的目錄(D:\Python27\Lib\ ...
python對於跨包調用函數時,經常會提示模塊不存在的問題,主要是python程式執行時,搜索路徑導致的,python程式執行的路徑依次是: (1)程式根目錄
(2)環境變數
(3)標準庫目標(D:\Python27\Lib 標準庫是在lib文件下)
(4)第三方庫的目錄(D:\Python27\Lib\site-packages 第三方庫在site-packages文件下) 如下圖所示,明明test1文件是存在的,但是跨包調用時,就出現test1不存在的問題,原因是當test2模塊去調用test1中的模塊時,會先去pack2目錄下查找,pack2下沒有要調用的模塊和函數,所以很可能就停止了查找,彈出錯誤提示;
解決的辦法是,可以把調用文件的主目錄加到環境變數中 操作步驟:
import os import sys #步驟1:當前處於pack2d的test2文件目錄,路徑為dir1 dir1=os.path.dirname(__file__) print '當前文件目錄:',dir1 #步驟2:pack2的主目錄是day6,路徑為:dir2 dir2=os.path.dirname(os.path.dirname(__file__)) print '當前文件的主目錄:',dir2 #步驟3:把day6目錄加到環境變數中 sys.path.append(dir2) for item in sys.path: print item #步驟4:直接導入test1文件,然後再次調用test1裡面的函數,不會再報錯了 import test1 test1.testfun()
執行結果如下:
test1中函數內容是: