2017-07-27 54 views
1

我在a.py中寫了一些函數。我運行a.py與我的通用 python二進制文件。裏面a.py,我有從另一個導入不可用模塊的文件導入函數?

import some_module 

def simple_function(): 
    ... 

def complex_function(): 
    some_module.some_func() 

現在,我想導入到simple_function()b.py,它具有與另一個Python(一種軟件捆綁安裝)中運行,而這條巨蟒沒有安裝some_module

當我運行b.py(其中包含行from a import simple_function)與軟件捆綁的python,我收到此錯誤,如預期。

ImportError: No module named 'some_module' 

有沒有辦法解決這個問題?如您所見,simple_function()不需要some_module


一個解決方案,我能想到的就是把import語句裏面complex_function

def simple_function(): 
    ... 

def complex_function(): 
    import some_module 
    some_module.some_func() 

但我確定linters和格式跳棋會抱怨它。更好的方案?

回答

1

解決方案是將複雜的功能單獨拆分成單獨的模塊。

當您在模塊中導入功能時,您正在導入整個模塊。

其他解決方案是在其他python安裝中安裝some_module ...

+0

謝謝。我將採用第一種解決方案。一些軟件捆綁的python不是開發版本,也沒有'Python.h' - 真的很難安裝模塊... –

+0

我強烈建議使用miniconda創建python環境。 https://conda.io/docs/install/quick.html?highlight=mini – Alexander

相關問題