Jupyter Notebook魔术%alias无效

时间:2019-05-18 08:52:07

标签: python jupyter-notebook

我在Jupiter Notebook中尝试了以下众所周知的%alias示例:

%alias bracket echo "Input in brackets: <%l>"
bracket hello world 

这应该输出:

Input in brackets: <hello world>

相反,我得到以下信息:

File "<ipython-input-12-237eb6e9d860>", line 1
alias bracket echo "Input in brackets: <%l>"
            ^
SyntaxError: invalid syntax

我已经清除了所有内容,关闭了书,甚至重新启动了内核。因此,这不是缓存中有一些“垃圾”的问题。我用%alias尝试了很多不同的方法。什么都没有。我什至得到“未定义'xxx'”,其中'xxx'是用于别名的名称。

其他信息:

1)如果仅执行bracket(无参数),则会收到错误消息:“未定义括号”。我觉得这很疯狂。希望您不要,并且知道发生这种情况的原因。

2)我正在使用Jupyter Notebook 5.6.0。

2 个答案:

答案 0 :(得分:0)

Python 3.6.8

jupyter版本:4.4.0

笔记本服务器:5.7.8

%alias bracket echo "Input in brackets: <%l>"
bracket hello world
bracket'hello world'
bracket(1)

输出:

"Input in brackets: <hello world>"
"Input in brackets: <'hello world'>" 
"Input in brackets: <(1)>" 

答案 1 :(得分:0)

我能够复制您的问题,并且在%调用之前放置bracket会将其视为您正在创建的实际别名。

%alias bracket echo "Input in brackets: <%l>"

%bracket hello world
%bracket 'hello world'
%bracket (1)

输出:

"Input in brackets: <hello world>" 
"Input in brackets: <'hello world'>" 
"Input in brackets: <(1)>" 

对于笔记本服务器5.7.4,Python 3.7.1和IPython 7.2.0