无法将.py文件导入ipython notebook

时间:2014-04-25 21:30:53

标签: ipython-notebook

事先为#34;我无法让它工作"问题:如何将.py文件加载到ipython笔记本中?我想将python代码转换为笔记本(第一个简单脚本和后来包含nbconvert指令embedded as comments的脚本 - 请参阅链接文件的底部。)

也许我做错了,但也许我的设置出了问题。当我将.py文件拖到Notebook的文件列表中时,我收到消息

  

文件类型无效:上传的笔记本必须是.ipynb个文件。

我甚至尝试将扩展名更改为.ipynb(保持python脚本不被修改);合理地说,我收到了一个错误:

  

加载笔记本时出错:错误请求

知道出了什么问题吗?

系统信息:我在OS X(10.8,Mountain Lion)上使用Firefox 28.0和Anaconda 1.9.2(x86_64),它提供了python 2.7.6和ipython 2.0。 Anaconda不是默认的PATH;我将其添加到bash会话中,然后使用ipython notebook启动笔记本,并且我能够在浏览器中正常打开和编辑.ipynb个文件。

但我确实有一些好奇的行为: 从笔记本导出作为.py文件时,我不会将控制注释记录为here,但格式更简单,没有版本号:

# coding: utf-8

# In[ ]:

print "This is a slide"

## Top-level title 

### Second-level heading 

#### Third-level heading

# This is some `markdown` text. 
# 
# And some more here.

知道这里发生了什么吗?

ipython nbconvert生成相同的格式。但是,如果我使用ipython notebook --script启动笔记本服务器(每次保存时将笔记本导出为python脚本),结果将包含我们需要转换回笔记本的nbconvert指令! / p>

3 个答案:

答案 0 :(得分:10)

我遇到了同样的问题。 这篇文章帮助: How to load/edit/run/save text files (.py) into an IPython notebook cell?

基本上,我们只需要在单元格中使用以下命令。并且.py文件必须位于同一目录中。

%load filename.py

答案 1 :(得分:5)

我不确定为什么笔记本不支持本机,但我得出结论答案是:它不能通过命令行或笔记本GUI完成。 / p>

<markdowncell>之类的控制评论只能通过python访问笔记本的API来解释,如this answer中@CliffordVienna对我的相关问题所示。

import IPython.nbformat.current as nbf
nb = nbf.read(open('test.py', 'r'), 'py')
nbf.write(nb, open('test.ipynb', 'w'), 'ipynb')

修改:上述方法不适用于Notebook API的当前版本(v4),因此我添加了this self-answer来说明它是如何实现的。已完成。

答案 2 :(得分:-1)

如果您只需要导入本地文件,请先使用:

sys.path.append(os.getcwd())

将.pynb文件的目录放在sys.path中,然后导入本地文件。