1

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

有没有其他人能够解决这个问题?

4

1 回答 1

2

好的,我发现了问题所在。这一切都与我的 $PATH 变量有关。我将来自 Continuum.io 的 Anaconda 包用于科学 python——顺便说一句,这是一个很棒的包。因此 Anaconda 将更新 $PATH 变量,以便它的 python 二进制文件版本首先出现在 $PATH 中,因此是与之相反的版本pip。我知道 Ipython 用 Anaconda 做到了这一点,但不是python。所以当我用 更新 pyzmq 时pip,那是更新 Anaconda 发行版,而不是正常的本地安装的 python 安装/usr/bin/ ...

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

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

所以现在 SublimeREPL 正在工作。

于 2014-02-14T16:34:41.877 回答