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