2017-08-25 81 views
0

我創建了一個我開發的函數的python模塊。在這個模塊中有幾個導入,其中一些導入不是Python本地的,需要安裝。從沒有子導入的文件導入函數

我有一個實例,我需要一個python腳本來訪問此模塊中的函數,但我不希望它嘗試使用已經在模塊中的所有其他導入。我已經爲下面的設置創建了一個非常基本的示例。

例如:

#this is the module, named MOD.py 
import win32con 
def func1(): 
    data = win32con.function() 
    return data 
def func2(): 
    return do_action() 


#this is the exterior script 
from MOD import func2 
data = func2() 

爲什麼它仍然會嘗試導入內MOD.py的win32con模塊即使FUNC2不使用它?當然,如果模塊沒有安裝,我會在win32con上得到一個ImportError。我不想在每次我想運行甚至不使用它的代碼時在機器上安裝這些模塊。

+0

您似乎分組不相關的功能到一個模塊中,您可能希望重新考慮這一點。換句話說,使用多個模塊而不是一個模塊。 – cdarke

+0

爲什麼不重構,以便不需要它的模塊也不會導入它? – jonrsharpe

回答

1

如果導入在FUNC1只用,你可以FUNC1內導入:

#this is the module, named MOD.py 
def func1(): 
    import win32con 
    data = win32con.function() 
    return data 
def func2(): 
    return do_action() 
+0

這是否意味着每次調用func1()時都會重新讀取文件? – Barmar

+0

不,默認情況下模塊只加載一次。 – cdarke