2017-07-07 239 views
0

在我gui.py模塊我有:如何導入已導入另一個文件的Python模塊?

from PyQt5 import QtCore, QtGui, QtWidgets 

class Ui_Dialog(object): 
     ... 

如何正確地從我的main.py該模塊導入的一切,而不from gui import *我應該再次使用我的from PyQt5 import QtCore ...from gui import QtCore ...

+2

你應該把每個python模塊當作獨立的模塊,每一個python模塊都需要導入才能工作。 Python然後聰明的東西來緩存模塊,並避免兩次編譯它們。所以簡短的回答包括所有使用它的模塊中的PyQt導入。 –

回答

0

一般情況下,你不應該從它本身只是其導入模塊導入的東西:

# gui.py 
from PyQt5 import QtCore, QtGui, QtWidgets 

def some_function(): 
    pass 

,那麼你應該做的:

# main.py 
from PyQt5 import QtCore, QtGui, QtWidgets 
from gui import some_function 

唯一的例外是聚集__init__.py文件出於方便原因從其子模塊獲取模塊:

# some_module/__init__.py 
from .submodule import some_function 
from .other_submodule import some_other_function 

然後

# main.py 
from .some_module import some_function, some_other_function 

由於the're不gui提供的模塊,你應該直接從PyQt5導入。

+0

我也有gui模塊中的其他類。 –

+0

那些你需要從'gui'導入。但不要通過'gui'從其他模塊導入類。 –