是否可以通过Markdown单元格中的超链接将一个IPython笔记本链接到另一个?如果我试试
Link to [Notebook 2](files/notebook2.ipynb)
Run Code Online (Sandbox Code Playgroud)
要么
Link to <a href="files/notebook2.ipynb">Notebook 2</a>
Run Code Online (Sandbox Code Playgroud)
将打开一个新选项卡,其中包含ipynb文件的原始未格式化内容.有没有办法让IPython通过超链接打开另一个笔记本用于新标签?
我刚开始使用IPython Notebook,我尝试使用"保存"来保存我的进度.但是,不是将*.ipynb保存在我当前的工作目录中,而是保存在我的python/Scripts文件夹中.有没有办法设置这个?
谢谢!
我的用例是我想初始化文件中的一些函数,然后启动ipython并定义那些函数.有什么方法可以做像ipython --run_script = myscript.py这样的事吗?
交互式Python(ipython)简直太神奇了,尤其是当你在飞行中将事物拼凑在一起时...并且这样做很容易回归.
然而,似乎有趣的是具有多个ipython笔记本(ipynb文件)的用例.显然,似乎笔记本不应该与其他笔记本有关系,这是有道理的,除了我想要导入其他ipynb文件.
我看到的唯一解决方法是将我的*.ipynb文件转换为*.py文件,然后将其导入我的笔记本中.让一个文件保存在项目中的所有内容有点奇怪,特别是如果我想真正推动代码重用(这不是python的核心原则吗?).
我错过了什么吗?这不是ipython笔记本支持的用例吗?我可以使用另一种解决方案将ipynb文件导入另一个笔记本吗?我想继续使用ipynb,但它现在正在弄乱我的工作流程:(
我想转换我的ipython-notebooks来打印它们,或者只是将它们以html格式发送给其他人.我注意到已经有了一个工具来做到这一点,nbconvert.我已经下载了它,但我不知道如何使用nbconvert2.py来转换笔记本,因为nbconvert说它已被弃用.nbconvert2.py说我需要一个配置文件来转换笔记本,它是什么?是否存在有关此工具的文档?
我一直在使用这篇文章中描述的方法来设置IPython笔记本,以便与Django很好地配合.该方法的要点是创建一个IPython扩展,它设置DJANGO_SETTINGS_MODULE并在IPython启动时运行django.setup().
扩展的代码是:
def load_ipython_extension(ipython):
# The `ipython` argument is the currently active `InteractiveShell`
# instance, which can be used in any way. This allows you to register
# new magics or aliases, for example.
try:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
import django
django.setup()
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud)
随着最近升级到Jupyter笔记本电脑,这个设置现在已经打破了.我可以通过在笔记本的第一个单元格中添加类似的代码来在Jupyter笔记本中运行Django代码.但是,我无法弄清楚如何让Jupyter自动运行扩展程序,因此我不必为我正在创建的每个笔记本再次执行此操作.
我该怎么办才能让Django和Jupyter玩得很好?
更新: 对于@DarkLight - 我使用Django 1.8.5与Jupyter 1.0.0.我在笔记本中运行的代码是:
import os, sys
sys.path.insert(0, '/path/to/project')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settingsfile")
import django
django.setup()
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 12.04上运行ipython 0.12.1.您可以使用笔记本界面在浏览器中运行它:
ipython notebook --pylab
Run Code Online (Sandbox Code Playgroud)
配置文件可以在中找到~/.config/ipython/profile_default/.似乎每个内核的连接参数都放在~/.config/ipython/profile_default/security/kernel-4e424cf4-ba44-441a-824c-c6bce727e585.json.以下是此文件的内容(在启动新内核时会创建新文件):
{
"stdin_port": 54204,
"ip": "127.0.0.1",
"hb_port": 58090,
"key": "2a105dd9-26c5-40c6-901f-a72254d59876",
"shell_port": 52155,
"iopub_port": 42228
}
Run Code Online (Sandbox Code Playgroud)
它是相当不言自明的,但我如何设置一个具有永久配置的服务器,所以我可以使用局域网中其他计算机的笔记本界面?
附带IPython笔记本nbconvert,可以将笔记本导出为其他格式.但是如何以相反的方向转换文本?我问,因为我已经拥有不同格式的材料和良好的工作流程,但我想利用Notebook的交互式环境.
一个可能的解决方案:可以通过导入.py文件来创建笔记本,并且文档指出当nbconvert将笔记本导出为python脚本时,它会在可用于重新创建笔记本的注释中嵌入指令.但是这些信息附带了关于此方法的局限性的免责声明,并且在我能找到的任何地方都没有记录可接受的格式.(奇怪的是,在描述笔记本的JSON格式的部分中显示了一个示例).任何人都可以提供更多信息,或更好的选择吗?
编辑(2016年3月1日):已接受的答案不再有效,因为出于某种原因,Notebook API的第4版不支持此输入格式. 我添加了一个自我答案,展示了如何使用当前(v4)API导入笔记本.(我不是不接受当前的答案,因为它解决了我当时的问题并指出了我在自我回答中使用的资源.)
(Mac OSX 10.10.5)
我可以从matplotlib网站复制http://matplotlib.org/gallery.html#mplot3d的3D散点图示例代码http://matplotlib.org/examples/mplot3d/scatter3d_demo.html,但情节呈现为静态图像.我无法点击图表并动态旋转以查看3D绘图数据.
我使用示例代码实现了静态3D绘图 - 使用(a)终端内的ipython,(b)终端内的ipython笔记本,以及(c)从Anaconda启动器启动的ipython笔记本.
我想我错过了一些非常基本的步骤作为假设的知识.
在过去的学习中,plotting已经打开了一个GUI Python App,它有一个图形查看器.(下面显示的代码中的解决方案2打开了这个.)也许我需要知道将输出图导出到该显示方法的代码?(是的,使用%matplotlib(仅)作为没有内联或笔记本的第一行,如下面代码块中的注释所示.)
作为ipython笔记本中的一个例子:
# These lines are comments
# Initial setup from an online python notebook tutorial is below.
# Note the first line "%matplotlib inline" this is how the tutorial has it.
# Two solutions 1. use: "%matplotlib notebook" graphs appear dynamic in the notebook.
# 2. use: "%matplotlib" (only) graphs appear dynamic in separate window.
# ( 2. is the best solution for detailed graphs/plots. …Run Code Online (Sandbox Code Playgroud) 我尝试使用IPython.display和以下代码:
from IPython.display import display, Image
display(Image(filename='MyImage.png'))
Run Code Online (Sandbox Code Playgroud)
我还尝试使用matplotlib以下代码:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
plt.imshow(mpimg.imread('MyImage.png'))
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都不显示任何内容,甚至不显示错误消息.