jupyter notebook 中编写 sas 代码

折腾了两个半小时终于搞定,记录一下。

安装 SAS kernel

在安装了 anaconda3 的基础上,直接使用命令行安装 sas_kernel 模块(win 用户可以 powershell 中运行如下命令):

> pip install sas_kernel

这个过程会安装 SASPy 模块,因为SASPy是sas_kernel 的依赖包。

配置 SASPy

SASPy 的配置是最重要的一步。笔者只需要python能够连接windows平台本地的sas服务,所以重点说明winlocal 的配置。

step1

找到 sascfg_personal.py 文件,打开,在该文件中进行相关配置:

>>> import saspy
>>> saspy.SAScfg
<module 'sascfg_personal' from 'C:\\Users\\51377\\Anaconda3\\lib\\site-packages\\sascfg_personal.py'>

step2

打开 sascfg_personal.py 文件,发现其中包含各种类型的配置,包括linux,windows,local,remote等等。对于windows平台连接本地sas的情况来说,只要配置winlocal 即可,即下图红框标识的部分(根据实际情况填写)。

SAS_config_names=['default', 'winlocal']

这里写图片描述

step3

将sas相关文件 sspiauth.dll 添加到系统环境变量,该文件很可能在如下目录:

C:\Program Files\SASHome\SASFoundation\9.4\core\sasext

(注意添加变量时不要包含 sspiauth.dll 文件本身)

重点提醒:环境变量添加完成后,要重启电脑才会生效。

若不重启,相当于没有添加环境变量,很可能遇到如下报错:

>>> import saspy
>>> sas = saspy.SASsession()

The native implementation module for the security package could not be found in the path.The native implementation module for the security package could not be found in the path.
SAS process has terminated unexpectedly. RC from wait was: 4294967290
SAS Connection failed. No connection established. Double check you settings in sascfg.py file.

Attempted to run program java with the following parameters:['java', '-classpath', 'C:\\java\\sas.svc.connection.jar;C:\\java\\log4j.jar;C:\\jars\\sas.security.sspi.jar;C:\\jars\\saspyiom.jar',
'pyiom.saspy2j', '-host', 'localhost', '-stdinport', '59110', '-stdoutport', '59111', '-stderrport', '59112', '-zero', '']

Be sure the path to sspiauth.dll is in your System PATH

No SAS process attached. SAS process has terminated unexpectedly.

完成

各项配置成功后,会有如下显示:

>>> sas = saspy.SASsession(cfgname='winlocal')
SAS Connection established. Subprocess id is 6968

可以在python中写sas代码啦。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值