我知道%load函数(以前%loadpy)将文件(或URL,...)的内容加载到新的输入单元格中(之后可以执行).
我也知道%less,%more并且%pycat,它在分页器中显示文件的内容(这意味着在笔记本中它显示在屏幕底部的分割窗口中).
是否有(魔术)命令加载文件并在输出单元格中显示其内容(带语法高亮显示)?
即如下所示,但结果的语法高亮:
with open('my_file.py', 'r') as f:
print(f.read())
Run Code Online (Sandbox Code Playgroud)
我希望文件内容与.ipynb文件一起存储,但是当我执行Cell - > Run All时,我不希望它被执行.
是否有类似的命令%psource显示输出单元格中的源代码而不是寻呼机?
目前,在ipython笔记本中创建两个连续图时,它们会一个在另一个下面显示:

我想知道是否有任何方法让它们按行显示,直到窗口中的空间用完为止.因此对于前两个图,输出将如下所示:

我意识到我可以通过在网格中排列子图来做类似的事情,但是我想知道是否可以自动执行它以便在空间用完时将图包裹到下一个"线"上?
我有一个开头的ipython笔记本
import sklearn
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到:
ImportError: No module named sklearn
Run Code Online (Sandbox Code Playgroud)
事实上,如果我在笔记本上运行以下代码片段,它就不会显示scikit_learn:
import pip
installed_packages = pip.get_installed_distributions()
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
print installed_packages_list
Run Code Online (Sandbox Code Playgroud)
但是,当我从命令行运行代码段时,scikit_learn位于列表中.
我想到了一个版本问题(为一个版本而不是另一个版本安装的模块),在笔记本和命令行上都有bur,sys.version给出2.7.5
有关这个问题的任何想法吗?
根据cel的评论:
ipython -c "import sys; print(sys.executable)"
Run Code Online (Sandbox Code Playgroud)
输出/ usr/bin/python(import sys; print(sys.executable)直接在笔记本中运行)
然后,/usr/bin/python -m pip install scikit-learn
输出:要求已经满足(使用--upgrade升级):scikit-learn in/Users/MyUserName
我正在使用nbconvert命令行执行iPython笔记本(如本答案所示):
ipython nbconvert --to=html --ExecutePreprocessor.enabled=True RunMe.ipynb
是否可以传递命令行参数以便从笔记本中访问(如sys.argv)?
这将让我在不同的上下文中重用相同的笔记本.
我正在对IPython内核进行一项小型研究,并试图从中获取调试日志,看看它是如何与笔记本交互的.现在看来我的发行版中提供的文档和示例配置已经完全过时了.
在提供官方文档的链接之前,请阅读本节
首先,我使用以下命令为IPython和笔记本创建了配置文件:
$ ipython profile create
$ jupyter notebook --generate-config
Run Code Online (Sandbox Code Playgroud)
正如预期的那样创建三个文件:
在这些文件中,我发现了类似的评论片段:
# Set the log level by value or name.
# c.Application.log_level = 0
Run Code Online (Sandbox Code Playgroud)
我试图在jupyter配置中取消注释它.它没有添加更多细节,而是完全禁用了该jupyter进程的控制台输出.我也试过50它有相同的结果,值DEBUG在启动时给了我Python错误.
我也在ipython的配置中使用了这些值,但是我无法找到日志文件的位置.
在邮件列表命令行选项--log-level=DEBUG中提到,实际上它适用于jupyter.但我真的想在配置文件中保留此设置并为内核调试信息.
配置选项NotebookApp.log_level,IPKernelApp.log_level也不做任何改变.
我有一个我开始使用的环境,Anaconda并且我成功地在其中安装了一个模块.我知道,因为我可以跑python,然后import tensorflow.这也适用于通过ipython.问题是,我无法从我开始使用的笔记本中加载模块ipython notebook或jupyter(即使我从活动环境执行).
我怀疑它与设置有关,ipython但我不知道如何调试和解决问题.任何的想法?
编辑: 以下是我采取的步骤:
conda create --name tensorflowproblem python=2.7 创造一个环境source activate tensorflowproblemconda install --name tensorflowproblem jupyter 安装jupyterpip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl 安装 tensorflow的位置pip和jupyter:
$ which -a pip
/Users/dror/anaconda/envs/tensorflowproblem/bin/pip
$ which -a jupyter
/Users/dror/anaconda/envs/tensorflowproblem/bin/jupyter
Run Code Online (Sandbox Code Playgroud)
请注意该目录~/anaconda/envs/tensorflowproblem/lib/python2.7/site-packages/tensorflow存在.
此外,既python -c "import tensorflow"不会ipython -c "import tensorflow"产生任何错误.
按要求,也是出局
$ conda list -n tensorflowproblem
# packages in environment at …Run Code Online (Sandbox Code Playgroud) 是否可以以交互式幻灯片模式运行Jupyter笔记本?也就是说,Python内核将在后台运行,我可以修改和执行单元格.
以下命令生成HTML幻灯片,我无法修改或执行单元格:
jupyter nbconvert mynotebook.ipynb --to slides --post serve
Run Code Online (Sandbox Code Playgroud) 有没有办法配置 ipython notebook,这样每当我打印一个长列表时,我会自动看到底部?
例如,在终端中,如果我运行以下命令:
for i in range(1000):
print i
Run Code Online (Sandbox Code Playgroud)
它会自动滚动到底部:
992
993
994
995
996
997
998
999
In [2]:
Run Code Online (Sandbox Code Playgroud)
但是在 Python 笔记本中,我看到了开头,我必须手动向下滚动到最后一个数字。
我正在运行一个长循环,每次迭代需要几秒钟,每当我想检查程序有多远时,都不得不向下滚动,这很不方便,
谢谢你,
我在IPython笔记本(作为HTML小部件的一部分)和Spyre应用程序(作为dropdown元素)中有一个下拉列表,比如选择一个大陆,我想添加第二个下拉列表来选择该大陆的国家.现在很明显,第二个下拉列表中的选项取决于第一个下拉列表的值.我很难找到一种方便的方法来获得一个更新这个UI元素的回调函数.
我几乎在IPython笔记本中完成了这个,我有一个interact函数,在被调用的函数中,我interact用第二个下拉列表创建了第二个元素.但每当我更改第一个下拉列表时,都会创建一个新的下拉元素,因此每次更改时我都会得到一个额外的下拉列表.但我只希望更新一个下拉列表,就是这样.
希望问题很清楚.谢谢.
我可以在ipython notebook小部件中向button.on_click注册一个处理程序,但我不知道如何为下拉小部件执行相同操作
import ipywidgets as widgets
from IPython.display import display
def on_button_clicked(b):
print("Button clicked.")
button = widgets.Button(description="Click Me!")
display(button)
button.on_click(on_button_clicked)
Run Code Online (Sandbox Code Playgroud)
但对于
choose_task = widgets.Dropdown(
options=['Addition', 'Multiplication', 'Subtraction'],
value='Addition',
description='Task:',
)
Run Code Online (Sandbox Code Playgroud)
似乎只有
on_trait_change(...)
Run Code Online (Sandbox Code Playgroud)
如果我用这个注册处理程序,我可以用它来访问小部件的值吗?我看过处理程序的例子,小部件属于一个子类,处理程序可以使用self来内省.但是如果我不想使用子类,那么处理程序如何知道哪个小部件是事件的目标.