2017-01-03 61 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),因为它可能与此有关。