2016-01-30 44 views
0

我正在嘗試使用py2exe編譯PyQt py到exe文件。
進口SYS 從PyQt5進口QtWidgetsPyQt exe。沒有名爲'PyQt5.QtCore'的模塊

#PythonApplication1.py 
def main(): 
    app = QtWidgets.QApplication(sys.argv) 
    window = QtWidgets.QMainWindow() 
    button = QtWidgets.QPushButton("Hello world") 
    window.setCentralWidget(button) 
    window.show() 
    app.exec_() 

-

#setup.py 
from distutils.core import setup 
import py2exe 
setup(windows=[{"script":"PythonApplication1.py"}], options={"py2exe":{"includes":["sip"]}}) 

$蟒蛇setup.py py2exe --includes抿

當我運行exe文件只存在錯誤窗口:查看日誌文件'C:\ dist \ PythonApplication1.log'以獲取詳細信息。

#PythonApplication1.log 
Traceback (most recent call last): 
    File "PythonApplication1.py", line 5, in <module> 
    File "<loader>", line 10, in <module> 
    File "<loader>", line 8, in __load 
ImportError: (No module named 'PyQt5.QtCore') 'C:\\dist\\PyQt5.QtWidgets.pyd' 
+2

你可以嘗試添加'import PyQt5.QtCore'到你的* PythonApplication1.py *。 –

回答

1

我設法通過修改setup.py

setup(windows=[{"script": "PythonApplication1.py"}], 
     options= {"py2exe": {"includes": ["sip", "PyQt5.QtCore", "PyQt5.QtGui"]}}) 

,並通過複製qwindows.dllDIST /平臺/目錄下建立一個可執行的應用程序。

的另一種方法是添加導入語句

import PyQt5.QtCore 
import PyQt5.QtGui 

到主程序。

+0

這對我沒有幫助。但你對我的問題的評論確實如此。 – Ufx

+0

@Ufx奇怪的是,我測試了這兩種方法,似乎除了* qwindows.dll * –