配置 Jupyter 的 SAS 内核
在 Jupyter notebooks 中运行 SAS 代码的配置指南
配置
jupyter
设置
1 概述
本指南展示如何配置 Jupyter 以在 .ipynb notebooks 中运行 SAS 代码,实现交互式 SAS 编程并内联显示输出结果。
2 前置要求
- 已安装 SAS(推荐 SAS 9.4 或更高版本)
- Python 3.8+ 并已安装 Jupyter
- 管理员/提升权限用于内核安装
3 安装步骤
3.1 1. 安装 SAS Kernel for Jupyter
以管理员权限打开命令提示符或 PowerShell 并运行:
pip install saspy
pip install sas_kernel3.2 2. 配置 SAS 连接
在 ~/.saspy/sascfg_personal.py 创建配置文件(Windows 路径:C:\Users\你的用户名\.saspy\sascfg_personal.py):
# 本地 SAS 安装配置
SAS_config_names = ['winlocal']
winlocal = {
'saspath': 'C:/Program Files/SASHome/SASFoundation/9.4/sas.exe',
'options': ['-nosplash', '-noterminal'],
'encoding': 'utf-8'
}
# 请将 'saspath' 修改为您实际的 SAS 安装路径重要:将 saspath 更新为您实际的 SAS 安装路径。
3.3 3. 安装内核
安装 sas_kernel 后,将其注册到 Jupyter:
jupyter kernelspec install --user --name sas或者如果已注册,可以更新:
python -m sas_kernel.install3.4 4. 验证安装
检查 SAS 内核是否可用:
jupyter kernelspec list您应该在可用内核列表中看到 sas。
4 在 Quarto/Jupyter 中使用 SAS
4.1 创建 SAS Notebook
在 .ipynb 文件中,将内核设置为 SAS。在 notebook 元数据中添加:
{
"kernelspec": {
"display_name": "SAS",
"language": "sas",
"name": "sas"
}
}或者在 Jupyter 或 VS Code 中创建新 notebook 时,从内核下拉菜单中选择 “SAS”。
4.2 SAS 代码单元示例
/* 创建示例数据集 */
data class;
set sashelp.class;
bmi = weight / (height**2) * 703;
run;
/* 显示汇总统计 */
proc means data=class;
var age height weight bmi;
run;
4.3 在 Quarto 文档中使用
您可以直接在 Quarto 中嵌入 .ipynb 文件:
- 创建 notebook:
fundamentals/my-lesson.ipynb - 在
.qmd文件中引用它或将其包含在列表中
或者使用 {sas} 引擎在 .qmd 文件中直接执行 SAS 代码:
```{sas}
proc print data=sashelp.class;
run;
```注意:在 .qmd 中直接执行 SAS 需要额外配置 Quarto SAS 引擎。
5 替代方案:SASPy 配置
如果您更喜欢使用 SASPy 而不是内核(通过 Python 控制 SAS 会话):
import saspy
sas = saspy.SASsession(cfgname='winlocal')
# 提交 SAS 代码
sas.submit('''
data test;
x = 1;
y = 2;
run;
''')
# 将数据集转为 pandas DataFrame
df = sas.sd2df('sashelp.class')
print(df.head())6 故障排除
6.1 内核未显示
- 安装后重启 VS Code/Jupyter
- 检查内核列表:
jupyter kernelspec list - 重新安装:
python -m sas_kernel.install --user
6.2 连接错误
- 验证
sascfg_personal.py中的 SAS 路径 - 检查 SAS 许可证是否有效
- 确保 SAS 可从命令行运行:
"C:\Path\To\sas.exe" -nodms
6.3 编码问题
- 在配置中设置编码:
'encoding': 'utf-8'或'latin1' - 检查数据文件编码
7 下一步
- 在
fundamentals/下创建练习 notebooks - 使用
.ipynb进行交互式练习 - 使用
.qmd编写带嵌入代码示例的课程内容 - 查看 课程材料 了解结构化课程