2013-05-05 134 views
2

我想用PyQt4运行一些示例代码。我试图从Notepad ++以及Enthought Canopy环境中运行它。示例代码如下所示。从npp内部,我使用插件nppExec作为命令python -i“$(FULL_CURRENT_PATH)”。 (我也尝试过没有互动-i)运行PyQt4示例代码时没有任何反应

import sys 
from PyQt4 import QtGui 


def main(): 

    app = QtGui.QApplication(sys.argv) 

    w = QtGui.QWidget() 
    w.resize(250, 150) 
    w.move(300, 300) 
    w.setWindowTitle('Simple') 
    w.show() 

    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 

当我从核电站内运行,内部控制台似乎冻结了(没有错误),并可回收使用Ctrl-C

当我运行它从内篷,我得到了以下错误消息

%run "c:\users\brian\appdata\local\temp\tmpfe9mmh.py" 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
C:\Users\Brian\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.0.0.1160.win-x86\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc) 
    174    else: 
    175     filename = fname 
--> 176    exec compile(scripttext, filename, 'exec') in glob, loc 
    177  else: 
    178   def execfile(fname, *where): 

c:\users\brian\appdata\local\temp\tmpfe9mmh.py in <module>() 
    20 
    21 import sys 
---> 22 from PyQt4 import QtGui 
    23 
    24 

C:\Users\Brian\AppData\Local\Enthought\Canopy32\App\appdata\canopy-1.0.0.1160.win-x86\lib\site-packages\IPython\external\qt_loaders.pyc in load_module(self, mod_name) 
    43  Importing %s disabled by IPython, which has 
    44  already imported an Incompatible QT Binding: %s 
---> 45  """ % (mod_name, loaded_api())) 
    46 
    47 ID = ImportDenier() 

ImportError: 
    Importing PyQt4 disabled by IPython, which has 
    already imported an Incompatible QT Binding: pyside 

我很困惑,为什么雨棚将它的项目在一个看似陌生的地方(C:\用户\布莱恩\应用程序数据\本地\ Enthought \ Canopy32) ,而不是简单的C:/ python27

我正在Python 2.7版32位,雨棚版本:1.0.0.1160 32位的Win7 64位

+0

你上面的代码没有问题的作品。 – Developer 2013-05-05 10:41:21

回答

0

它看起来像pyside(替代蟒蛇Qt的结合),以某种方式时蟒蛇正在运行被自动导入你的机。导入pyside和pyqt都会导致某种冲突导致您的问题。

我想知道..你有一个名为sys.py的模块在你使用pyside的路径中吗?您正在导入作为内置模块的sys,但是如果在路径中有一个名为sys.py的文件,则会导入该文件。如果是这种情况,那么您可以运行该脚本:

import sys 

print sys.__file__ 

找到文件的位置。如果导入的sys模块实际上是内置模块,sys将不会有__file__属性,并且会引发异常。

顺便说一句,我试着在我的机器上的例子代码,它运行没有任何问题。

0

在NppExec,用命令的

CMD /C python -u "$(FULL_CURRENT_PATH)" 

代替

python "$(FULL_CURRENT_PATH)" 
相关问题