[英]pyqt application debugging does not work in eclipse
我目前正在使用eclipse編寫我的第一個pyqt應用程序。 我已經使用qt designer開發了主窗口gui,並且能夠在eclipse中運行而沒有問題。
但是我注意到,當我嘗試在eclipse中調試它時,它不起作用...在與qt相關的第一行代碼中似乎出錯了:app = QtGui.QApplication(sys.argv)
作為測試,我使用了相同的代碼,並使用IDLE(python GUI)對其進行了調試,然后一切正常(我可以設置斷點並逐步執行代碼)。
我確實已經在外部庫部分中將PyQt的位置添加到PyDev的python路徑(c:\\ python27 \\ Lib \\ site-packages \\ PyQt4)中,但這似乎無法解決問題。 調試器始終以退出值-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_())
使用pydev進行常規運行已經可以在eclipse中運行。 只有當我切換到調試模式時,它才似乎不起作用...
我確實比較了PATH和PYTHONPATH,並且IDLE和pydev的PATH environmnet變量相同。
PYTHONPATH有兩個區別:1.目錄的順序2.調試器的位置(這很有意義,因為我們使用了不同的調試器)
肺炎路徑
在IDLE中:
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
路徑
在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版本:Kepler Service Release 1
pydev版本:4.0.0
SIP版本:4.18.1
PyQT4的版本:4.8.7
它對我來說確實很好(在PyQt4和PyQt5中都可以),因此,可能是您的配置中有一些東西...
一注:
不要將文件夾site-packages\\PyQt4
到PYTHONPATH中。 如果您要導入為import PyQt4
,則僅父文件夾應位於PYTHONPATH中(即您的情況下為site-packages
)。
有關如何解決此問題的一些說明:
如果簡單的問候不起用,請嘗試先進行處理。
嘗試在debug
運行之前進行regular
運行(僅對F9着重於編輯器)(有關運行模塊的更多詳細信息,請參見: http : //www.pydev.org/manual_101_run.html )。
在有效的情況下打印PYTHONPATH,在無效的情況下打印PYTHONPATH,並確保您更新了解釋器/項目配置,使其相同(請參閱: http : //www.pydev.org/manual_101_interpreter.html和http://www.pydev.org/manual_101_project_conf2.html ,了解如何更改這些配置)。
即:運行:在兩者中import sys;print('\\n'.join(sorted(sys.path)))
並比較結果。
如果仍然LD_LYBRARY_PATH
問題,請嘗試比較兩種情況下的環境變量(主要是Windows上的PATH
,Linux上的LD_LYBRARY_PATH
和Mac上的DYLD_LIBRARY_PATH
)。
例如:運行: print('\\n'.join(sorted(os.environ['PATH'].split(os.pathsep))))
在哪里工作,並與PyDev中的內容進行比較。
如果仍然無法使用,請提供更多有關您實際示例的詳細信息,以及您的python版本以及PYTHONPATH和PATH的信息(以及上面第3和第4項的內容),因為這可能與此有關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.