1. Jupyter Notebook
Jupyter项目是一个非盈利的开源项目,源于 2014 年的 ipython 项目,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。基于它用途的广泛性, 它现在是非常流行的开发工具。
在 PyCharm 内, 可以轻松地编辑、执行和调试 Jupyter Notebook 源代码,并检查执行输出,包括流数据、图像等等。
2. 在 PyCharm 编辑 Jupyter Notebook 文件
step1: 创建新的 Python 项目,指定虚拟环境,并安装 jupyter 包。
step2: 在 “Project” 工具栏的上下文菜单里选择 New -> Jupyter Notebook
, 在弹出窗口中输入文件名。
step3: 扩展名为 .ipynb 文件被创建, 下面的编辑窗口将显示。
step4: Jupyter 是个WEB应用,点击黄色灯泡按钮,在菜单中选择 Start Jupyter Server
。
点击日志中的链接,浏览器显示如下:
step5: 回到PyCharm编辑文件。Notebook file 是由一个个cell构成的,有三种类型 code、raw 与markdown cell。(cell: 一对In Out会话被视作一个代码单元, 每个代码单元可以单独执行)
Tips: 在编辑Python Code Cell 时,相应的代码补全,语法高亮显示,错误信息提示及快速修复等等功能与编辑标准的Python文件一样都是支持的。
编辑完成以后,我们刷新一下对应的浏览器页面,PyCharm 内编辑的内容已经同步更新了。
3. 运行与调试 Code Cell
文件创建完成以后,在 PyCharm 里可以直接运行了。PyCharm 提供了多种运行方式,既可以单独运行一个 Cell, 也可以一次全部运行。不仅可以在同一页面查看运行结果,还可以查看变量详情。
此时,我们刷新一下对应的浏览器页面,运行 Cell 生成的图表也显示出来了。
除此以外, 点击工具栏中 黄色灯泡图标,在菜单中选择其它的运行方式:
- Run Cell:执行当前 Cell;
- Run All Above:执行当前与当前 Cell 上面的所有 Cell;
- Run All Below:执行当前与当前 Cell 后面的所有 Cell;
- Run Cell and Select Below:执行当前Cell, 并导航到下一个Cell;
- Debug Cell:开始调试Cell。
在执行过程中,要注意 Cell 之间的依赖关系,比如当前 Cell 代码调用了前一个 Cell 的变量,在执行当前Cell 以前,要先执行前面的Cell, 否则会报错。
3.2 调试
在 Code Cell 中设置断点,点击绿色箭头图标,然后选择"Debug Cell"。过程与调试标准的Python 是没实质性区别的。
Tips: 如果 当前 Cell 从任何其它 Cell 调用函数,至少要保证函数所在的 Cell 是被 Run过的,如果想单步执行该函数, 需要函数所在的Cell 是被 Debug 过,而不仅仅是 Run 过,这样函数内相关的断点才工作。
4. Jupyter Server 管理
前面提到通过点击工具栏 黄色灯泡 图标,在弹出菜单中选择 Start Jupyter Server
启动服务。实际上要运行 Jupyter 服务器,只需执行任何 Cell 就可以了。当启动 Cell 执行时,PyCharm 使用任何可用端口(默认 8888 端口)在本地主机上启动 Jupyter 服务器。Jupyter 工具窗口会自动打开。
4.2 配置 Server
当启动任何托管服务器时,默认情况下它使用当前项目解释器和自动选择的端口。实际上可以选择 PyCharm 实例中可用的任何其他解释器,并指定备用端口。也可以使用其它已知 jupyter 服务器的 URL 和 Token,连接到该服务器。
step1: 在 Jupyter 服务器列表中选择"Configure Jupyter Server", 打开服务器设置。
step2: 配置服务器
要自定义默认的 Jupyter 服务器,请在 Jupyter 服务器对话框中选择 Use Managed Server (托管服务器),从 Python 解释器列表中选择任何本地 Python 解释器
更改自动检测到的端口,在"port"字段中键入其编号。
除此以外,也可以连接到任何正在运行的 Jupyter 服务器,请在 Jupyter 服务器对话框中选择"Configured Server"并指定服务器的路径,比如: 在本地命令行终端启动一个 Jupyter server 。
拷贝上面的链接到下面的输入框中,包括 url 与 token。
step3: 点击 ok, 然后,切换到配置的服务器,在工具栏中的服务器列表中选择"Switch to current Jupyter Server"。
step4: 执行代码后, 可能会遇到下面的信息“新配置的服务器的内核与当前项目解释器不匹配”
单击相应的链接Register project interpreter as kernel(将项目解释器注册为配置服务器上的内核)。然后可以在配置的服务器的内核列表中看到它,就可以正常运行 Cell 了。
进程管理, 添加文件/etc/systemd/system/jupyter.service
[Unit] Description=Jupyter Service [Service] Type=forking ExecStart=/usr/bin/python3 -m IPython notebook KillMode=process Restart=on-failure RestartSec=3s [Install] WantedBy=multi-user.target
systemctl start jupyter
systemctl enable jupyter
参考:PyCharm集成Jupyter Notebook丨慕课网教程 (imooc.com)