GVKun编程网logo

Jupyter Notebook nbconvert无需魔术命令/无降价促销(jupyternotebook魔法命令)

21

如果您想了解JupyterNotebooknbconvert无需魔术命令/无降价促销的相关知识,那么本文是一篇不可错过的文章,我们将对jupyternotebook魔法命令进行全面详尽的解释,并且为您

如果您想了解Jupyter Notebook nbconvert无需魔术命令/无降价促销的相关知识,那么本文是一篇不可错过的文章,我们将对jupyternotebook魔法命令进行全面详尽的解释,并且为您提供关于9个可以提高Jupyter Notebook开发效率的魔术命令、anaconda Jupyter Notebook 中的内核错误:ImportError、docker 配置 anaconda + jupyter notebook 纪要、Exception: Jupyter command `jupyter-notbook` not found.的有价值的信息。

本文目录一览:

Jupyter Notebook nbconvert无需魔术命令/无降价促销(jupyternotebook魔法命令)

Jupyter Notebook nbconvert无需魔术命令/无降价促销(jupyternotebook魔法命令)

我有一个Jupyter笔记本,我想将其转换成一个Python使用脚本nbconvert命令从 Jupyter笔记本电脑。

我在笔记本末尾添加了以下行:

!jupyter nbconvert --to script <filename>.ipynb

这将创建一个Python脚本。但是,我希望生成的.py文件具有以下属性:

  1. 没有输入语句,例如:

#In [27]:

  1. 没有降价,包括如下语句:

#编码:utf-8

  1. 忽略以下%magic命令:

    1. %matplotlib inline
    2. !jupyter nbconvert --to script <filename>.ipynb,即笔记本中执行Python转换的命令

当前,%magic命令已转换为以下形式:get_ipython().magic(...),但不一定在中识别Python

答案1

小编典典

一种控制输出内容的方法是标记不需要的单元格,然后使用TagRemovePreprocessor删除单元格。

在此处输入图片说明

下面的代码还使用TemplateExporter中的exclude_markdown函数删除markdown。

!jupyter nbconvert \    --TagRemovePreprocessor.enabled=True \    --TagRemovePreprocessor.remove_cell_tags="[''parameters'']" \    --TemplateExporter.exclude_markdown=True \    --to python "notebook_with_parameters_removed.ipynb"

要删除注释行和输入语句市场(如#[1]),我相信您需要在调用!jupyter nbconvert
from的单元格之后,对单元格中的以下内容进行如下处理:这是Python 3代码):

import refrom pathlib import Pathfilename = Path.cwd() / ''notebook_with_parameters_removed.py''code_text = filename.read_text().split(''\n'')lines = [line for line in code_text if len(line) == 0 or         (line[0] != ''#'' and ''get_ipython()'' not in line)]clean_code = ''\n''.join(lines)clean_code = re.sub(r''\n{2,}'', ''\n\n'', clean_code)filename.write_text(clean_code.strip())

9个可以提高Jupyter Notebook开发效率的魔术命令

9个可以提高Jupyter Notebook开发效率的魔术命令

Jupyter Notebook包含一写特殊的命令,我们称之为魔术命令。

正如它的名字,魔术命令是一个特殊的命令。魔术命令通过将%符号与要运行的命令一起使用来工作。

魔术命令有很多种,但在本文中我只展示最常用的9个魔术命令。让我们开始吧。

%who

它将显示您在jupiter Notebook环境中拥有的所有可用变量。让我在下面展示一个例子。

import seaborn as sns
df = sns.load_dataset(''mpg'')
a = ''simple''
b = 2

我们创建了3个不同的变量;df, a,和b。如果您在您的Jupyter Notebook单元格中键入%who,它将显示所有现有的变量。

我们可以看到我们拥有所有的变量,包括环境中预先存在的变量。

如果您想要查看特定的变量,比如只查看str变量,该怎么办?它是很容易的。您需要在魔术命令之后输入对象类型。在本例中,它是%who str。

%timeit

这个命令很有趣。它通过多次运行来评估代码的执行速度,并产生执行时间的平均+标准偏差。让我们举个例子。

import numpy as np
%timeit np.random.normal(size=1000)

使用%timeit 魔术命令,我们知道每个执行时间的执行时间只会偏差341ns左右。

当您想要确定代码执行和循环过程的稳定性时,这个命令非常有用。

%store

如果你在一个笔记本上做一个项目,而你想在另一个笔记本上传递你的变量,那该怎么办呢?您不需要pickle它或将它保存在某个目标文件中。您需要的是使用%store 魔术命令。

这是我们以前的Jupyter Notebook与'' df ''变量包含mpg数据帧。接下来,我想把这个“df”变量移动到另一个笔记本上。我只需要键入%store df。

“df”变量现在存储在Jupyter Notebook和准备在不同的Jupyter Notebook中共享使用。让我们尝试创建一个新的笔记本,并输入%store -r df。

我们的“df”变量已经转移到另一个笔记本上,准备用于另一个分析。关于%store 魔术命令的另一个好处在于,您可以删除记事本中的变量,而您仍然可以在%store 魔术命令中存储变量。

%prun

另一个与时间有关的魔术命令。%prun用于计算函数或程序执行每个函数需要多长时间。

%prun的惊人之处在于,它显示了一个列表,列表中其中可以看到语句中每个内部函数被调用的次数、每次调用的时间以及函数所有运行的累积时间。

让我们通过一个示例来运行%prun 魔术命令。

如上图所示,我们可以看到每个函数在语句中的执行时间,以及它们的执行时间加上累积时间。

%history or %hist

当你花了很多时间做分析后,你想知道你做过什么以及你目前的状况,或者有时候你不得不在单元格之间来回跳转以运行函数时,你会不会经常忘记历史的操作?

在这种情况下,我们可以使用%history 魔术命令查看您的活动日志,并跟踪您已经做了什么。

尝试在jupiter notebook单元格中运行%history,看看输出是什么。

%pinfo

当处理一个新的对象或包时,您希望获得所有的详细信息。如果你是像我一样懒,那么我们可以使用魔法命令%pinfo 得到所有的详细信息。

让我们尝试使用之前的DataFrame对象运行这个魔术命令。

使用这个神奇的命令,我们可以看到关于对象的所有信息和我们可以使用的所有参数。

%%writefile

对于开发和生产环境来说,jupiter Notebook并不是最好的IDE,但这并不意味着我们不能在jupiter单元中做到这一点。

如果您已经编写了可以复用的函数,并希望将其保存在python文件中,该怎么办呢?当然,您可以打开另一个IDE并复制粘贴该文件,但是有一种更简单的方法可以做到这一点。我们可以使用神奇的命令%%writefile来达到同样的结果。

让我们尝试运行以下代码。

%%writefile test.py
def number_awesome(x):
  return 9

检查当前目录;现在应该有一个新的Python文件。

%pycat

如果您想采用另一种方式,比如将Python文件读取到您的jupiter notebook中,该怎么办?您也可以使用%pycat 魔术命令来实现这一点。

让我们尝试阅读我们之前的Python文件。

一个新的弹出窗口将显示Python文件中的所有代码。

当您希望在jupiter Notebook中使用许多生产和开发代码时,这个神奇的命令非常有用。

%quickref

最后一个魔法命令是%quickref。为什么这是应该知道的魔法命令?因为这个魔法命令详细解释了Jupyter Notebook中存在的所有魔法命令。

我们试着在你的笔记本上运行一下。

就像这样,现在您将看到您可以使用的每个魔法命令的所有解释。那是多么有用啊!

总结

魔术命令是一种特殊的命令,在Jupyter Notebook它可以帮助我们以提高我们的日常开发效率,作为一个数据科学家。我认为这9个魔法命令是必须知道的。

作者:Cornellius Yudha Wijaya

原文地址:https://towardsdatascience.com/9-magic-command-to-enhance-your-jupyter-notebook-experience-101fb5f3a84

deephub翻译组


本文分享自微信公众号 - DeepHub IMBA(deephub-imba)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

anaconda Jupyter Notebook 中的内核错误:ImportError

anaconda Jupyter Notebook 中的内核错误:ImportError

如何解决anaconda Jupyter Notebook 中的内核错误:ImportError?

我遇到了以下错误

Traceback (most recent call last):
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\tornado\web.py",line 1704,in _execute
    result = await result
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\tornado\gen.py",line 769,in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\sessions\handlers.py",line 69,in post
    model = yield maybe_future(
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\tornado\gen.py",line 762,in run
    value = future.result()
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\tornado\gen.py",in run
    yielded = self.gen.throw(*exc_info)  # type: ignore
  File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py",line 98,in create_session
    kernel_id = yield self.start_kernel_for_session(session_id,path,name,type,kernel_name)
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\tornado\gen.py",line 110,in start_kernel_for_session
    kernel_id = yield maybe_future(
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\tornado\gen.py",in run
    value = future.result()
  File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\services\kernels\kernelmanager.py",line 176,in start_kernel
    kernel_id = await maybe_future(self.pinned_superclass.start_kernel(self,**kwargs))
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_client\multikernelmanager.py",line 186,in start_kernel
    km.start_kernel(**kwargs)
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_client\manager.py",line 337,in start_kernel
    kernel_cmd,kw = self.pre_start_kernel(**kw)
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_client\manager.py",line 286,in pre_start_kernel
    self.write_connection_file()
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_client\connect.py",line 466,in write_connection_file
    self.connection_file,cfg = write_connection_file(self.connection_file,File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_client\connect.py",line 136,in write_connection_file
    with secure_write(fname) as f:
  File "C:\ProgramData\Anaconda3\lib\contextlib.py",line 113,in __enter__
    return next(self.gen)
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_core\paths.py",line 461,in secure_write
    win32_restrict_file_to_user(fname)
  File "C:\Users\Abhilash H.P\AppData\Roaming\Python\python38\site-packages\jupyter_core\paths.py",line 387,in win32_restrict_file_to_user
    import win32api
ImportError: DLL load Failed while importing win32api: The specified procedure Could not be found.

如何解决此错误?

我尝试了 Stack Overflow、Youtube 上几乎所有可用的解决方案,甚至我完全删除了 anaconda 和 Python 及其依赖项,然后重新安装了它们。但仍然无法正常工作。

解决方法

问题通过重置环境变量解决...

如果有人遇到同样的错误,只需检查 anaconda 安装目录的路径并检查环境变量是否也匹配相同...

第一步:在windows搜索栏中搜索环境变量

第 2 步:在系统属性对话框下选择环境变量

第 3 步:检查系统中的 Anaconda 安装目录路径(用户/系统)

第 4 步:如果在 User 中,则在 User Variables 下选择 Path,否则在 System Variables 下选择 Path 并单击 Edit

步骤 5:从编辑环境变量对话框中选择新建

步骤 6:粘贴 Anaconda 安装目录路径。

第 7 步:完成

第 8 步:如果效果不佳,请删除与 Python 和 Anaconda 相关的所有路径变量并卸载 anaconda 及其所有依赖项,删除与 Anaconda 和 Python 相关的所有文件...并重新安装 anaconda...它有效...

谢谢...

,

该错误与“pywin”有关,如果您已经拥有该软件包,请尝试此操作:

pip install --upgrade pywin32==225

或者这个

pip install pywin32==225
,

我按照以下步骤操作:

  1. 要在 Anaconda 中创建新的虚拟环境,请键入以下命令 第一步:conda create -n myenv python=Version (python=3.8)

  2. 首先激活创建的环境 第 2 步:conda activate myenv

  3. 首先,激活您的虚拟环境并运行此代码。 第 3 步:pip install --user ipykernel

  4. 如果我们想在 Jupyter Notebook 中拥有虚拟环境,我们需要手动添加内核。这就是为什么我们需要通过运行此代码来添加它。 第 4 步:python -m ipykernel install --user --name=myenv

这样,我们已经设置了我们的虚拟环境内核并准备好在 Jupyter Notebook 中使用。

在我的例子中,错误是因为导入 win32api 时 DLL 加载失败,这个导入错误。

由@Alama1 的命令解决: pip install pywin32==225

docker 配置 anaconda + jupyter notebook 纪要

docker 配置 anaconda + jupyter notebook 纪要

首先,pull官方的镜像,名字叫:continuumio/anaconda3

首先的首先,如果默认还是需要sudo运行docker命令,可以考虑把当前用户加入到docker组(usermod -aG docker $USER),然后重新登录一下就好了(备注:如果也在用tmux操作,需要重新开一个session,不然fork出来的user login总是保留着旧的状态。)

 

其次,这时候其实建议写一个dockerfile,不过因为偷懒,且不是永久性质的部署,所以选择了直接运行image。

目前用的命令是直接运行bash,然后再attach进去手动运行jupyter。docker run 对应的指令如下:

docker run -it -p 127.0.0.1:9999:8888 -v /home/user/container-notebook:/opt/notebook --name notebook continuumio/anaconda3

怕自己以后忘记这里说明一下,-p是端口映射,把容器内的8888端口映射到本机的9999。注意:如果不加127.0.0.1默认是bind 0.0.0.0

以及,-v 是目录(volume)映射,把本机的container-notebook挂到了容器内的/opt/notebook

--name 是方便以后操作加上的,不加的话会随机生成一个名字,不好认。

至于command,因为默认会运行bash,所以image name后面就省略command部分了。

 

至于为什么需要先进shell,主要是为了设置jupyter的密码。因为不设置密码的话登录要用url token,太麻烦了,而用参数明文指定密码也不太好,只好手动操作了。

设置密码的指令很简单:jupyter notebook password 即可。注意:密码保存在~/.jupyter下的一个json config里面,非明文,仅保存了hash值。如果忘了只能手动再设置一遍。

 

之后在shell里面运行notebook的命令也很简单:jupyter notebook --notebook-dir=/opt/notebook --ip=* --no-browser --allow-root 即可。

这里也说明一下相关的细节:因为官方的docker image只有root用户,所以不加allow-root运行不了。其他参数都好理解。

 

最后,因为运行了上面这条jupyter的指令后,stdin就被占用了,这时候ctrl+c不是退出container,而是终止jupyter。官方的默认退出container的操作是快捷键ctrl+p然后ctrl+q,这样可以保持容器内的前台任务继续运行。

 

其他补充

因为google了很多相关的东西,虽然不一定跟部署jupyter有关,不过还是有用也值得记录一下的。

 

1. 停止 docker container 一般优先用stop,kill是发送SIGKILL强制退出,没有提前发送SIGTERM

2. 想要在docker里面用tmux的前提是有一个可以安装tmux的环境(比如基于某个发行版的docker image)

3. docker pull下来的image默认存储在/var/lib/docker

4. docker run 的时候加上-d参数可以把stdout的输出转移到后台,需要查看的话用docker container logs

 

 

ref:

官方镜像(内附简要使用说明):https://hub.docker.com/r/continuumio/anaconda3

https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

docker kill 和 stop 有什么区别》http://dockone.io/question/158

关于Docker目录挂载的总结 - iVictor - 博客园》https://www.cnblogs.com/ivictor/p/4834864.html

https://stackoverflow.com/questions/19234831/where-are-docker-images-stored-on-the-host-machine

后台运行 | Docker 从入门到实践》https://vuepress.mirror.docker-practice.com/container/daemon.html

端口映射:https://docs.docker.com/config/containers/container-networking/

https://docs.docker.com/engine/reference/commandline/attach/

目录挂载:https://docs.docker.com/storage/volumes/

 

Exception: Jupyter command `jupyter-notbook` not found.

Exception: Jupyter command `jupyter-notbook` not found.

  • adconda 默认环境是 base ,切换自己创建的环境中启动 jupyter notbook,出现如下异常

(python35) D:\workspace\pythonDL\ocr\keras_ocr>jupyter notbook
Traceback (most recent call last):
  File "d:\tool\anaconda3\envs\python35\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\tool\anaconda3\envs\python35\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\tool\Anaconda3\envs\python35\Scripts\jupyter.exe\__main__.py", line 9, in <module>
  File "d:\tool\anaconda3\envs\python35\lib\site-packages\jupyter_core\command.py", line 247, in main
    command = _jupyter_abspath(subcommand)
  File "d:\tool\anaconda3\envs\python35\lib\site-packages\jupyter_core\command.py", line 134, in _jupyter_abspath
    ''Jupyter command `{}` not found.''.format(jupyter_subcommand)
Exception: Jupyter command `jupyter-notbook` not found.

  •  需要安装 

(python35) C:\Users\..>pip install  ipykernel (python35) C:\Users\ 小松 >
(python35) C:\Users\..>python -m ipykernel install --user --name python35 --display-name "Python [conda env:python35]"
Installed kernelspec python35 in C:\Users\...\AppData\Roaming\jupyter\kernels\python35

(python35) C:\Users\..>jupyter notebook
[I 14:17:44.082 NotebookApp] JupyterLab extension loaded from D:\tool\Anaconda3\lib\site-packages\jupyterlab

 

 

 

 

 

 

 

关于Jupyter Notebook nbconvert无需魔术命令/无降价促销jupyternotebook魔法命令的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于9个可以提高Jupyter Notebook开发效率的魔术命令、anaconda Jupyter Notebook 中的内核错误:ImportError、docker 配置 anaconda + jupyter notebook 纪要、Exception: Jupyter command `jupyter-notbook` not found.等相关内容,可以在本站寻找。

本文标签:

上一篇解构电商、O2O促销系统的“进化”之路(电商o2o模式)

下一篇电商平台常用促销方式有哪些(电商平台常用促销方式有哪些类型)