当我启动IPython Notebook时,我可以导航到它并输入代码.但是,没有任何东西可以回到IPython Notebook界面.
我知道服务器正在获取查询(来自--debug output)并响应它们,它只是从来没有在我的IPython Notebook窗口中输出.
我正在运行Python 2.6.6和Windows 7
目前我对如何使这款笔记本电脑工作感到茫然.
这是我尝试(失败)获取输出的截屏视频:
即使你不知道什么是错的,关于如何进一步调试我的问题的任何指针:(
到目前为止,我已成功运行龙卷风测试chatclient,https://github.com/facebook/tornado/tree/master/demos/websocket.
此外,pyzmq的测试脚本https://github.com/zeromq/pyzmq/blob/master/examples/poll/reqrep.py也成功运行.
是否可以在IPython Notebook中运行一些长任务,关闭浏览器,然后在一段时间后再打开它并显示这些任务的结果?
说,这样的任务:
def f():
import time
time.sleep(100)
with open("result.txt", "w") as fh:
fh.write("Done.")
Run Code Online (Sandbox Code Playgroud)
如果我正常运行任务,并在完成之前关闭浏览器,当我打开它时,我看不到'result.txt'.
如果我使用%px魔术或并行执行来运行它- 如果我在完成之前关闭浏览器,则再没有结果.
有可用的任何扩展或黑客吗?或者我错过了什么?
更新1:
虽然在IPython中有后台作业控制支持,但在我断开浏览器后,后台作业变得陈旧.我唯一能想到的就是%connect_info在关闭浏览器之前发出,然后使用连接从屏幕终端
ipython console --existing <ID>.json
Run Code Online (Sandbox Code Playgroud)
并从那里开始我的工作.
更新2:
更有帮助的黑客是组合ipython console和工作控制.即我在浏览器中启动后台作业时打开控制台并连接到同一会话,然后我可以自由关闭它直到作业完成.
更新3:
它似乎工作自版本iPython 1.0dev没有任何黑客.你只需运行你想要的,关闭浏览器,它仍然运行.
我已经弄清楚如何抑制大型代码块出现在最终的NB转换(PDF)输出中.
通过将LaTex命令放在"我希望在最终输出中不需要的代码之前的原始单元格"中
\iffalse
Run Code Online (Sandbox Code Playgroud)
最后跟着这个原始单元格
\fi
Run Code Online (Sandbox Code Playgroud)
但是,当我需要显示数字等时,仍然留下一些丑陋的代码,而笔记本的基本目的是显示带有结果的代码,有时对于非技术用户,我们只需要输出..任何想法?
如果有人受到启发,有点相关..任何方式在markdown单元格中包含python变量,这样可以得到带有计算结果的动态文本?对不起第二个问题,但我不确定是否因为一些奇怪的原因而单独询问这个问题.
我使用奇妙的Seaborn库来获取IPython Notebook中的一些摘要统计数据.我最近切换到我的笔记本的深色主题,并试图找出深色背景的Seaborn最佳见解.我正在使用这种darkgrid风格,但传说仍然是用黑色打印,这使得它们无法阅读.这是一个例子:

修复我使用Seaborn的样式以使图例显示为白色的最佳方法是什么?
更新:我刚注意到我的Matplotlib图存在同样的问题..所以我的问题更为笼统.您使用什么样式来允许黑暗图上的白色,以便传说可读?
我有一个ipython笔记本,带有我本地驱动器的嵌入式图像.我期待它与代码单元的输出一起嵌入JSON中,但是当我分发笔记本时,图像并没有出现在用户身上.在Notebook中嵌入图像的推荐方法是什么,如果用户重新运行代码单元,清除单元格输出等,它不会消失?
笔记本系统缓存包含的图像,但它们仅持续到重新启动服务于笔记本的python"内核".如果我重命名磁盘上的图像文件,我可以关闭并重新打开笔记本,它仍然显示图像; 但是当我重新启动内核时它会消失.
编辑:如果我生成一个图像作为代码单元格输出,然后将笔记本导出为html,图像嵌入在html中作为编码数据.当然必须有一种方法来挂钩这个功能并将输出加载到降价(或更好的"原始nbconvert")单元格?
from IPython.display import Image
Image(filename='imagename.png')
Run Code Online (Sandbox Code Playgroud)
将导出(with ipython nbconvert)到包含以下内容的html:
<div class="output_png output_subarea output_execute_result">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnAAAAFgCAYAAAA...
</div>
Run Code Online (Sandbox Code Playgroud)
但是,即使我手动将此片段嵌入到markdown单元格中,也无法显示图像.我究竟做错了什么?
PS现有(旧)答案提供了一些非常有用的指针,但不是解决方案.
我希望能够将iPython笔记本单元的TEXT输出保存到磁盘上的文件中.
我有2个额外的要求/要求:
我已经想出如何使用%%capture魔法将iPython笔记本电脑的单元基本保存到一个文件中,但它看起来不够灵活:每次重新运行单元格时它都会不断添加,我无法在其中显示相同的细胞.
这是我到目前为止:
%%capture cap --no-stderr
print 'stuff'
with open('output.txt', 'w') as f:
f.write(cap.stdout)
# clear the cap by deleting the variable here?
# del cap
Run Code Online (Sandbox Code Playgroud)
当我尝试cap.show()写入后,它似乎没有显示.相反,它将输出放入cap变量两次.
如何设置MathJax"序言"以便在IPython(或Jupyter)笔记本中重复使用,方便其他人阅读我的文档(在http://nbviewer.org上)并且适用于LaTeX/PDF代?
我想使用IPython(现在是Jupyter)笔记本来处理我后来通过LaTeX(使用ipython nbconvert)转换为PDF的文档.问题是如何在几乎每个文档中包含一堆宏定义.就像是:
\newcommand{\vect}[1]{\vec{#1}}
\newcommand{\abs}[1]{\lvert#1\rvert}
\DeclareMathOperator{\erf}{erf}
Run Code Online (Sandbox Code Playgroud)
就笔记本电脑而言,一个令人不满意的解决方案是将它们简单地包含在笔记本顶部的降价单元中,嵌入两个美元符号之间,$$因此它被解释为数学.如果这是在一些介绍性文本之后完成的,那么它甚至不会影响输出.
问题是,当转换为LaTeX(用于PDF导出)时,这些命令嵌入在LaTeX文件的数学环境中.这有几个问题:
\DeclareMathOperator必须出现在LaTeX文档前言中.\gdef或者克服来解决,\global\def但是必须要求MathJax识别这些命令,其中某些东西\let\gdef{\def}在某种程度上是从LaTeX中隐藏的.我发现使这项工作的任何方式都相当于一个丑陋的黑客.)\renewcommand(MathJax不支持,但也可以由\let\renewcommand\newcommand等等提供,这对我来说似乎是合理的,因为MathJax无法知道前导码可能用于最终的LaTeX文件) .可能解决方案是通过添加代码(不确定等效于此处......)为MathJax提供一组宏\DeclareMathOperator.
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: {
Macros: {
vect: ["{\\vec #1}",1],
abs: ["{\\lvert #1 \\rvert}",1]
}
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
到custom.js文件,然后在转换为PDF时提供包含的LaTeX包.我对这种方法的问题是:如何custom.js为其他人(协作者和查看者)分发文件和LaTeX样式文件?
我希望协作者能够编辑和阅读我的文档,而无需在其全局配置中安装自定义扩展.具体来说,我可以要求他们运行一个命令,就像python setup.py configure他们下载/签出我的代码一样,对项目进行本地修改,比如ipython_notebook_config.py在包含笔记本的所有目录中填充文件,但是不喜欢安装扩展或修改他们的个人全局custom.js文件.
我的绊脚石是我不知道如何将本地custom.js文件中的贡献添加到笔记本链中,并怀疑这可能违反了安全策略.
最好的解决方案不需要我的协作者的任何操作.
我希望我的笔记本能够在http://nbviewer.org上工作,并且人们能够下载笔记本并制作PDF.(我认为这排除了使用 …
我想在Jupyter笔记本中制作一些交互式图,其中图中的某些点可以被用户拖动.然后,这些点的位置应该用作更新绘图的Python函数(在笔记本中)的输入.
这样的事情已在这里完成:
http://nbviewer.ipython.org/github/maojrs/ipynotebooks/blob/master/interactive_test.ipynb
但回调是Javascript函数.在某些情况下,更新绘图的代码需要非常复杂,并且需要很长时间才能在Javascript中重写.如果有必要,我愿意在Javascript中指定可拖动点,但是可以回调Python来更新情节吗?
我想知道像Bokeh或Plotly这样的工具是否可以提供此功能.
环境:
每当我关闭一个IPython笔记本并重新打开它时,我必须重新运行所有单元格.但是一些细胞涉及密集计算.
相比之下,knitr在R中默认将结果保存在缓存目录中,因此只有新代码和新设置才会调用计算.
我看了一下,ipycache但似乎缓存了一个单元而不是笔记本.knitr在IPython中有缓存的对应物吗?
ipython-notebook ×10
ipython ×8
python ×5
matplotlib ×2
background ×1
javascript ×1
jupyter ×1
knitr ×1
mathjax ×1
pandoc ×1
r ×1
replace ×1
seaborn ×1