我已经尝试解决此问题了一段时间,但无法解决它。我将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时,一切正常。

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

最佳答案

好吧,我知道了问题所在。这都与我的$ PATH变量有关。我将Continuum.io的Anaconda软件包用于科学python-伟大的软件包btw。因此,Anaconda将更新$ PATH变量,以使其Python二进制文件的版本首先出现在$ PATH中,因此它是pip所针对的版本。我知道Ipython是用Anaconda做到的,但python也不行。因此,当我用pip更新pyzmq时,这是在更新Anaconda发行版,而不是在/usr/bin/ ...中本地安装的普通python安装程序

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

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

所以现在SublimeREPL正在工作。

10-08 03:57