5

我最近升级了我的 Enthought Python 发行版

sudo easy_install -U ipython

但是,当我使用命令启动 ipython 时ipython,出现错误:

David-Faux-MacBook-Air:core davidfaux$ ipython
Python 2.7.2 |EPD 7.2-2 (32-bit)| (default, Sep  7 2011, 09:16:50) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
[TerminalIPythonApp] Error in loading extension: kernmagic
Check your config files in /Users/davidfaux/.ipython/profile_default
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/ipython-0.13.1-py2.7.egg/IPython/core/extensions.pyc in load_extension(self, module_str)
     90                 __import__(module_str)
     91         mod = sys.modules[module_str]
---> 92         return self._call_load_ipython_extension(mod)
     93 
     94     def unload_extension(self, module_str):

/Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/ipython-0.13.1-py2.7.egg/IPython/core/extensions.pyc in _call_load_ipython_extension(self, mod)
    122     def _call_load_ipython_extension(self, mod):
    123         if hasattr(mod, 'load_ipython_extension'):
--> 124             return mod.load_ipython_extension(self.shell)
    125 
    126     def _call_unload_ipython_extension(self, mod):

/Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/kernmagic/__init__.py in load_ipython_extension(ip)
     28 
     29 def load_ipython_extension(ip):
---> 30     activate(ip)
     31     activate_aliases(ip)

/Library/Frameworks/Python.framework/Versions/7.2/lib/python2.7/site-packages/kernmagic/__init__.py in activate(ip, *args)
     14             continue
     15         magic_name = name[len('magic_'):]
---> 16         ip.shell.define_magic(magic_name, getattr(mymagics, name))
     17 
     18 def activate_aliases(ip, *args):

AttributeError: 'TerminalInteractiveShell' object has no attribute 'shell'

我四处搜索,我发现很多帖子都说在 ipython 配置文件中注释掉这一行。

c.TerminalIPythonApp.extensions = ['kernmagic']

我发现注释掉 ipython 文件很粗略……后来,我发现用 ipythonkernmagic 解决了这个问题

如何kernmagic在我的 ipython 发行版中升级以使此错误消失?

4

6 回答 6

5

这对我有用:

hg clone https://bitbucket.org/robertkern/kernmagic
cd kernmagic
python setup.py build
python -c "import setuptools;execfile('setup.py')" bdist_egg
egginst dist/kernmagic-0.0.0-py2.7.egg
于 2013-01-29T14:32:52.013 回答
4

您可以在配置文件中注释/删除该行,如果您不使用 kernmagic,则没有问题。实际上 .ipython/profile_xxx 文件夹是为人们改变事物而创建的。

否则,如果您真的想升级kern magic,我建议您卸载,删除文件并从当前源重新安装。

此外,IIRC 的核心魔法问题并非仅与 EPD 一起出现在原始 IPython 中,因此您不必害怕将其从配置文件和系统中删除。

于 2013-01-29T09:45:27.227 回答
4

对于那些没有运行 EPD 的 python 发行版的人(或者如果 Rich 的解决方案不起作用):

首先,我在 Mac OS X 10.8.4 上运行 Python 2.7.5 |Anaconda 1.6.0 (x86_64)|。

正如马特所说,最简单的方法是简单地注释掉如下所示的行:

# A list of dotted module names of IPython extensions to load.
c.TerminalIPythonApp.extensions = ['kernmagic']

我发现这个:

~/.ipython/profile_default/ipython_config.py

它应该位于向下的 1/3 左右。值得指出的是,这是一个临时解决方案——我不知道 kernmagic 是做什么的,也不知道它是否是一个重要的 ipython 扩展。

于 2013-08-19T21:12:13.823 回答
0

我刚刚kernmagic为 python3 创建了一个快速而肮脏的端口。在 python-2.x 下出现此问题时,它也可能起作用。

这是代码的链接。您需要做的就是将整个kernlab文件夹放到您的站点包目录中。它似乎是一个纯 python 库,所以它应该可以在任何平台上工作。

祝你好运!

于 2013-09-17T18:55:39.397 回答
0

Enthought 已经更新了 kernmagic,所以 Enthoughtenpkg在 EPD 7.3 和 ipython 0.13.1 上为我解决了同样的问题:

sudo enpkg kernmagic
于 2013-08-14T18:34:35.663 回答
0

我也遇到了这个问题,我在windows环境下,我发现那行

C:\Users\Li\.ipython\profile_default\ipython_config.py

如前所述,最简单的方法是简单地注释掉如下所示的行:

# A list of dotted module names of IPython extensions to load.
c.TerminalIPythonApp.extensions = ['kernmagic']
于 2016-05-15T02:28:59.377 回答