Python pyqt应用程序调试在eclipse中不起作用

Python pyqt应用程序调试在eclipse中不起作用,python,eclipse,debugging,pyqt4,pydev,Python,Eclipse,Debugging,Pyqt4,Pydev,我目前正在使用eclipse编写我的第一个pyqt应用程序。我已经使用qt designer开发了主窗口gui,并且能够在eclipse中毫无问题地运行它 然而,我注意到,当我尝试在eclipse中调试它时,这不起作用。。。它似乎在与qt相关的第一行代码中出错: app=QtGui.QApplication(sys.argv) 作为测试,我使用了相同的代码,并用IDLE(pythongui)对其进行了调试,然后一切正常(我可以设置断点并逐步完成代码) 我已经在ExternalLibraries部

我目前正在使用eclipse编写我的第一个pyqt应用程序。我已经使用qt designer开发了主窗口gui,并且能够在eclipse中毫无问题地运行它

然而,我注意到,当我尝试在eclipse中调试它时,这不起作用。。。它似乎在与qt相关的第一行代码中出错: app=QtGui.QApplication(sys.argv)

作为测试,我使用了相同的代码,并用IDLE(pythongui)对其进行了调试,然后一切正常(我可以设置断点并逐步完成代码)

我已经在ExternalLibraries部分将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_())
常规运行已经在eclipse中使用pydev工作。只有当我切换到调试模式,它似乎不工作

我确实比较了PATH和PYTHONPATH,对于IDLE和pydev,PATH environment变量是相同的

蟒蛇有两个不同之处: 1.目录的顺序 2.调试器的位置(这在我们使用不同的调试器时很有意义)

蟒蛇

空闲时:

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
路径

空闲时:

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的版本在这里对我来说确实很好(在PyQT4和PyQt5中),所以,它可能是您配置中的某个东西

注意:

不要将文件夹
site packages\PyQt4
添加到PYTHONPATH。如果您以
import PyQt4
的身份导入,则只有父文件夹应位于PYTHONPATH中(即:在您的情况下为
站点包

关于如何解决这一问题的一些注意事项:

  • 如果简单的hello不起作用,试着先解决这个问题

  • 在运行
    debug
    之前,尝试使
    正常运行(仅F9,焦点在编辑器上)(有关运行模块的更多详细信息,请参阅)

  • 在有效和无效的情况下打印PYTHONPATH,并确保更新解释器/项目配置,使其相同(有关如何更改这些配置,请参阅:和)

    i、 e:运行:
    导入系统;打印('\n'.join(排序(sys.path)))
    并比较结果

  • 如果仍然不可行,请尝试比较这两种情况下的环境变量(在Windows上主要是
    PATH
    ,在Linux上主要是
    LD\u-LYBRARY\u-PATH
    ,在Mac上主要是
    DYLD\u-LIBRARY\u-PATH

    i、 例如:运行:
    print('\n'.join(sorted(os.environ['PATH'].split(os.pathsep)))
    并与PyDev中的内容进行比较

  • 如果它仍然不起作用,请提供更多关于实际示例的详细信息,以及python版本以及PYTHONPATH和PATH上的信息(以及上面第3项和第4项中的打印内容),因为它可能与此相关