为什么IPython QtConsole无法启动?

5

我已经按照安装页面上的描述使用'pip install ipython[all]'安装了ipython,并且还使用homebrew安装了qtconsole所需的依赖项(qt、pyqt和sip)。但是,当我尝试在终端中使用'ipython qtconsole'启动qtconsole时,我收到以下错误消息:

Traceback (most recent call last):
  File "/Users/***/.virtualenvs/data-analysis/bin/ipython", line 11, in <module>
   sys.exit(start_ipython())
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/__init__.py", line 120, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 563, in launch_instance
app.initialize(argv)
  File "<string>", line 2, in initialize
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 92, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/terminal/ipapp.py", line 321, in initialize
    super(TerminalIPythonApp, self).initialize(argv)
  File "<string>", line 2, in initialize
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 92, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/core/application.py", line 381, in initialize
 self.parse_command_line(argv)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/terminal/ipapp.py", line 316, in parse_command_line
    return super(TerminalIPythonApp, self).parse_command_line(argv)
  File "<string>", line 2, in parse_command_line
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 92, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 475, in parse_command_line
    return self.initialize_subcommand(subc, subargv)
  File "<string>", line 2, in initialize_subcommand
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 92, in catch_config_error
    return method(app, *args, **kwargs)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/config/application.py", line 406, in initialize_subcommand
    subapp = import_item(subapp)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/utils/importstring.py", line 42, in import_item
    module = __import__(package, fromlist=[obj])
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/qt/console/qtconsoleapp.py", line 58, in <module>
    from IPython.external.qt import QtCore, QtGui
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/external/qt.py", line 23, in <module>
    QtCore, QtGui, QtSvg, QT_API = load_qt(api_opts)
  File "/Users/***/.virtualenvs/data-analysis/lib/python2.7/site-packages/IPython/external/qt_loaders.py", line 258, in load_qt
api_options))
ImportError: 
Could not load requested Qt binding. Please ensure that
PyQt4 >= 4.7 or PySide >= 1.0.3 is available,
and only one is imported per session.

Currently-imported Qt library:   None
PyQt4 installed:                 False
PySide >= 1.0.3 installed:       False
Tried to load:                   ['pyside', 'pyqt']

这里出了什么问题?非常感谢您的帮助。

注意:类似这个问题的解决方法在这里(https://dev59.com/9YPba4cB1Zd3GeqPpT38?rq=1)。该主题以及下面的评论(感谢jihun!)建议将“export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH”添加到.bash_profile中,以解决此问题。 - thereislight
1
有用的提示:“如何在Windows上安装PyQt4”,请参见此处 - https://dev59.com/E2Eh5IYBdhLWcg3wPhZT - Grag2015
1个回答

1
错误信息显示您未安装PyQt4或PySide >= 1.0.3。您应该检查其中一个软件包是否正确安装。您说您已经安装了pyqt,但是出现了错误。也许它是pyqt版本3。PyQt版本4有不同的名称,如PyQt4。在这种情况下,您应该安装pyqt4。

我使用brew ls --versions检查了pyqt的版本,看起来pyqt、qt和sip都是最新的。版本号分别为:pyqt 4.11.1;qt 4.8.6;sip 4.16.3。也许我需要手动导入pyqt?或者我的某个文件路径出了问题?我将尝试重新安装pyqt、qt和sip,看看是否能解决问题。 - thereislight
你是否检查了更新的PYTHONPATH,例如 "export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH"?Homebrew通常需要这样做。另一方面,你可以尝试使用Homebrew安装ipython,而不是pip。 - Jihun
啊,是的,我刚刚做了那个,它运行得非常好!非常感谢。顺便问一下,你知道为什么Homebrew通常需要那个/为什么那行代码使所有东西都能正常工作吗? - thereislight
由于Homebrew不是操作系统的官方部分,因此它不会触及/usr/lib。相反,它们把包安装在/usr/local/里。相比之下,Python通常是由操作系统默认安装的。因此,除非您明确要求,否则Python不会查找/usr/local/lib。 - Jihun
嗯,好的,那有点明白了。再次感谢! - thereislight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接