2017-01-03 60 views
0

我目前正在使用eclipse編寫我的第一個pyqt應用程序。我已經使用qt設計器來開發主窗口gui,我可以在eclipse中沒有問題的情況下運行它。pyqt應用程序調試在eclipse中不起作用

但是我注意到,當我嘗試在eclipse中調試它時,這不起作用......它似乎在第一個qt相關代碼行上出錯: app = QtGui.QApplication(sys.argv)

作爲一個測試,我使用了相同的代碼,並用IDLE(python GUI)調試它,然後一切正常(我可以設置斷點並逐步執行代碼)。

我已經將PyQt的位置添加到外部庫部分中的PyDev(c:\ python27 \ Lib \ site-packages \ PyQt4)的python路徑中,但這似乎無法解決問題。調試器總是以退出值-1073740771結束。

我試着用以下helloPython代碼來解決這個問題:

import os 
from PyQt4 import QtGui 


class HelloPython(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(HelloPython, self).__init__(parent) 
     helloLabel = QtGui.QLabel("Say Hello To PyQT!")  
     helloLineEdit = QtGui.QLineEdit() 

     mainLayout = QtGui.QGridLayout() 
     mainLayout.addWidget(helloLabel, 0, 0) 
     mainLayout.addWidget(helloLineEdit, 0, 1) 

     self.setLayout(mainLayout) 
     self.setWindowTitle("My Python App") 

if __name__ == '__main__': 
    import sys 

    app = QtGui.QApplication(sys.argv) 

    helloPythonWidget = HelloPython() 
    helloPythonWidget.show() 

    sys.exit(app.exec_()) 

定期運行並已經在使用Eclipse PyDev的工作。它只是當我切換到調試模式,它似乎並沒有工作...

我沒有比較兩個PATH和PYTHONPATH和PATH environmnet變量是相同的IDLE和pydev。

有在PYTHONPATH兩點不同:1, 爲了目錄 調試器的2.location(這讓我們用不同的調試器的意義上)

PYTHONPATH

在空閒的:

C:\Python27 
C:\Python27\Lib\idlelib 
C:\Users\35gs\Workspace\test_pyqt 
C:\Windows\system32\python27.zip 
C:\python27 
C:\python27\DLLs 
C:\python27\lib 
C:\python27\lib\lib-tk 
C:\python27\lib\plat-win 
C:\python27\lib\site-packages 

中的PyDev

C:\Program Files (x86)\eclipse-cpp-kepler-SR1-win32-x86_64\plugins\org.python.pydev_4.0.0.201504132356\pysrc 
C:\Users\35gs\Workspace\test_pyqt 
C:\Users\35gs\Workspace\test_pyqt 
C:\Windows\system32\python27.zip 
C:\python27 
C:\python27\DLLs 
C:\python27\Lib\site-packages 
C:\python27\lib 
C:\python27\lib\lib-tk 
C:\python27\lib\plat-win 

PATH

在IDLE

C:\Program Files (x86)\BitScope 
C:\Program Files (x86)\CheckPoint\Endpoint Security\Endpoint Common\bin 
C:\Program Files\TortoiseSVN\bin 
C:\Program Files\doxygen\bin 
C:\Python27 
C:\Python27\Lib\site-packages\PyQt4 
C:\Python27\Scripts 
C:\WindRiver\diab\5.8.0.0\WIN32\bin 
C:\WindRiver\utilities-1.0\x86-win32\bin 
C:\Windows 
C:\Windows\System32\Wbem 
C:\Windows\System32\WindowsPowerShell\v1.0\ 
C:\Windows\system32 
C:\python27 

中的PyDev:

C:\Program Files (x86)\BitScope 
C:\Program Files (x86)\CheckPoint\Endpoint Security\Endpoint Common\bin 
C:\Program Files\TortoiseSVN\bin 
C:\Program Files\doxygen\bin 
C:\Python27 
C:\Python27\Lib\site-packages\PyQt4 
C:\Python27\Scripts 
C:\WindRiver\diab\5.8.0.0\WIN32\bin 
C:\WindRiver\utilities-1.0\x86-win32\bin 
C:\Windows 
C:\Windows\System32\Wbem 
C:\Windows\System32\WindowsPowerShell\v1.0\ 
C:\Windows\system32 
C:\python27 

Python版本:2.7.10

的Eclipse版本:開普勒服務發佈1

pydev版本:4.0.0

版SIP協議:4.18.1

版本PyQt4的組成:4.8.7

回答

0

它的工作罰款,我在這裏(包括PyQt4中和PyQt5),因此,它可能是一些在你的配置。 ..

一個注意:

的文件夾site-packages\PyQt4不要添加到PYTHONPATH。如果您導入爲import PyQt4,則只有父文件夾應位於PYTHONPATH中(即,:site-packages在你的情況)。

對如何處理這個問題的一些注意事項:

  1. 如果簡單的Hello不起作用,首先嚐試在有效的。

  2. 儘量使debug運行(參見:http://www.pydev.org/manual_101_run.html更多細節上運行的模塊)前regular運行(只是爲重點,編輯F9)。

  3. 打印上的作品,並在情況下不能正常工作,並確保您更新翻譯/項目配置,以便它是相同的情況下PYTHONPATH(見:如何改變這些配置http://www.pydev.org/manual_101_interpreter.htmlhttp://www.pydev.org/manual_101_project_conf2.html )。

    即:運行:import sys;print('\n'.join(sorted(sys.path)))兩者並比較結果。

  4. 如果它仍然是一個不走,儘量環境變量在比較這兩種情況下(主要是在Mac在Linux PATH在Windows上,LD_LYBRARY_PATHDYLD_LIBRARY_PATH)。

    即:運行:print('\n'.join(sorted(os.environ['PATH'].split(os.pathsep))))它在哪裏工作並與您在PyDev中進行比較。

如果仍然沒有工作,請給您的實際例子更多詳情連同你的Python版本,並在您的PYTHONPATH和路徑信息(從項目3印刷品及以上4),因爲它可能與此有關。