在Sublime Text 3和Ipython shell中加载SublimeREPL的问题

时间:2014-02-11 22:59:15

标签: python ipython sublimetext3 pyzmq sublimerepl

我一直试图解决这个问题一段时间,但我无法解决它。我使用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时,一切正常。

还有其他人能够解决此问题吗?

1 个答案:

答案 0 :(得分:2)

好的,我发现了问题。这一切都与我的$ PATH变量有关。我使用Continuum.io的Anaconda软件包进行科学python - 很棒的软件包顺便说一句。因此,Anaconda将更新$ PATH变量,以便其版本的python二进制文件首先出现在$ PATH中,因此是pip对其进行操作的版本。我知道Ipython是用Anaconda做的,但也不是python。所以当我用pip更新pyzmq时,那是在/usr/bin/ ...

更新Anaconda发行版而不是正常的本地安装的python安装版。

有趣的是,SublimeREPL试图在/usr/bin/...中针对python安装调用REPL,而不是仅仅遵循对Anaconda发行版的正常$ PATH变量引用。我还不确定那是怎么回事?

所以无论如何,当我使用easy_install软件包安装程序升级pyzmq而不是pip时,这会更新/usr/bin/...中的python安装而不是Anaconda版本。这解决了这个问题。

所以现在SublimeREPL正在运作。