簡體   English   中英

pyqt應用程序調試在Eclipse中不起作用

[英]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 )。

有關如何解決此問題的一些說明:

  1. 如果簡單的問候不起用,請嘗試先進行處理。

  2. 嘗試在debug運行之前進行regular運行(僅對F9着重於編輯器)(有關運行模塊的更多詳細信息,請參見: http : //www.pydev.org/manual_101_run.html )。

  3. 在有效的情況下打印PYTHONPATH,在無效的情況下打印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. 如果仍然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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM