我一直试图解决这个问题一段时间,但我无法解决它。我使用SublimeREPL和Sublime Text 3.每当我尝试从SublimeREPL启动Ipython shell时,我都会收到此错误:
Traceback (most recent call last):
File "/home/user/.config/sublime-text-3/Packages/SublimeREPL/config/Python/ipy_repl.py", line 51, in <module>
embedded_shell = ZMQTerminalIPythonApp(config=cfg, user_ns={})
File "/usr/lib/python2.7/dist-packages/IPython/core/application.py", line 150, in __init__
super(BaseIPythonApplication, self).__init__(**kwargs)
File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 166, in __init__
SingletonConfigurable.__init__(self, **kwargs)
File "/usr/lib/python2.7/dist-packages/IPython/config/configurable.py", line 84, in __init__
self.config = config
File "/usr/lib/python2.7/dist-packages/IPython/utils/traitlets.py", line 307, in __set__
obj._notify_trait(self.name, old_value, new_value)
File "/usr/lib/python2.7/dist-packages/IPython/utils/traitlets.py", line 458, in _notify_trait
c(name, old_value, new_value)
File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 176, in _config_changed
self.log.debug('Config changed:')
AttributeError: 'ZMQTerminalIPythonApp' object has no attribute 'log'
***Repl Closed***
问题似乎与application.py模块中的这个ZMGTerminalIPythonApp对象有关。当我从命令行加载它时,Ipython工作得很好。
更新:所以我也尝试直接从命令行运行ipy_repl.py文件。我原以为它失败了,但实际上效果还不错。我没有得到上面的错误。所以不清楚为什么从ST3调用SublimeREPL时我得到了上面的错误但是当我从命令行调用SublimeREPL ipython shell时,一切正常。
还有其他人能够解决此问题吗?
答案 0 :(得分:2)
好的,我发现了问题。这一切都与我的$ PATH变量有关。我使用Continuum.io的Anaconda软件包进行科学python - 很棒的软件包顺便说一句。因此,Anaconda将更新$ PATH变量,以便其版本的python二进制文件首先出现在$ PATH中,因此是pip
对其进行操作的版本。我知道Ipython是用Anaconda做的,但也不是python
。所以当我用pip
更新pyzmq时,那是在/usr/bin/ ...
有趣的是,SublimeREPL试图在/usr/bin/...
中针对python安装调用REPL,而不是仅仅遵循对Anaconda发行版的正常$ PATH变量引用。我还不确定那是怎么回事?
所以无论如何,当我使用easy_install
软件包安装程序升级pyzmq
而不是pip
时,这会更新/usr/bin/...
中的python安装而不是Anaconda版本。这解决了这个问题。
所以现在SublimeREPL正在运作。