在 Polyglot Netebooks 中,添加Jupyter内核,支持Python语言
-
前提:系统要安装Python环境,推荐使用Anaconda安装,直接安装Python也可以
-
作用:使多语言笔记,直接支持 Python语言;
-
优势:在一个笔记文档中,可以同时混合多种语言:Python、C#、F#、PowerShell、JS、SQL、HTML等
安装 Python
- 直接安装:Python官网 下载安装即可;
- Anaconda:Anaconda官网 安装后要设置好默认环境;
# 保证:在命令行窗口,能直接执行下面命令
python --version
方式一:直接使用魔法命令#!connect jupyter
直接使用魔术命令:
- 无Conda环境:
#!connect jupyter --kernel-name pythonkernel --kernel-spec python3
- 有Conda环境:
#!connect jupyter --kernel-name pythonkernel --conda-env base --kernel-spec python3
实测有缺点:
- 不能重复执行:重复执行会报错
- 连接字符串必须是真实字符串:不能是变量,不灵活;明文"不安全",比如演示环境
//命名空间
using Microsoft.DotNet.Interactive;
using Microsoft.DotNet.Interactive.Commands;
//引入Python内核
#!connect jupyter --kernel-name pythonkernel --kernel-spec python3
方式二:变通用法:在C#程序中,拼接好魔术命令#!connect
,再发送给内核执行
此种方式是魔法命令的变型、优化版,本质原理一样,只是调用方式换成C#。
优点:
- 多次执行,不报错;
- 魔法命令:可自由拼接(可使用配置文件、系统变量、共享变量等),非常灵活;
using Microsoft.DotNet.Interactive;
using Microsoft.DotNet.Interactive.Commands;
//引入Python内核:使用C# 执行引入语句
if(Kernel.Root.FindKernelByName("pythonkernel2") == null)
{
//Console.WriteLine("正在导入Python内核....");
var importPythonkernel = "#!connect jupyter --kernel-name pythonkernel2 --kernel-spec python3";
await Kernel.Root.SendAsync(new SubmitCode( importPythonkernel, "csharp"));
//Console.WriteLine("Python内核导入完成");
}
else
{
//Console.WriteLine("Python内核已经导入");
}
使用Python语言内核
- 使用 #!pythonkernel 命令,切换到Python语言内核
- 单元格右下角,选择
pythonkernel
内核
# 明确指定内核:优先级高于 "单元格选择的内核"
#!pythonkernel2
print("你好,我是 Ployglot Notebooks 使用 Python语言内核,打印的内容!")
# 右下方选择 内核
print("右下方选择Python内核");