首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想使用本地mac中的python远程连接本地mac主机到SAS linux服务器

我想使用本地mac中的python远程连接本地mac主机到SAS linux服务器
EN

Stack Overflow用户
提问于 2020-03-19 22:56:09
回答 2查看 274关注 0票数 0

我正在尝试下面的代码:

代码语言:javascript
复制
sas = saspy.SASsession(cfgname='ssh', resutls='html',cfgfile='/Users/saumya.rb/opt/anaconda3/lib/python3.7/site-packages/saspy/sascfg.py')

错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/saumya.rb/opt/anaconda3/lib/python3.7/site-packages/saspy/sasbase.py", line 415, in __init__
    self.sascfg            = SASconfig(**kwargs)
  File "/Users/saumya.rb/opt/anaconda3/lib/python3.7/site-packages/saspy/sasbase.py", line 130, in __init__
    SAScfg = self._find_config(cfg_override=kwargs.get('cfgfile'))
  File "/Users/saumya.rb/opt/anaconda3/lib/python3.7/site-packages/saspy/sasbase.py", line 267, in _find_config
    SAScfg = importlib.import_module(tempname)
  File "/Users/saumya.rb/opt/anaconda3/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 724, in exec_module
  File "<frozen importlib._bootstrap_external>", line 860, in get_code
  File "<frozen importlib._bootstrap_external>", line 791, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/var/folders/pr/w_hplw1j7bl0vj2yj97_dd5mv3j_2t/T/tmp1bi7td8v/sascfg005.py", line 88
    'ssh'     : '/usr/bin/ssh',
              ^
SyntaxError: invalid syntax

请分享我的细节,如我应该使用哪个python版本。我的sascfg.py应该是什么样子?

我在darwin上使用Python 3.7.4 (默认,Aug 13 2019,15:17:50) Clang 4.0.1 (tags/RELEASE_401/final) ::Anaconda,Inc.

代码语言:javascript
复制
using below config :

default  = {'saspath'  : '/sashome/compute/SASFoundation/9.4/sas'
            'ssh'      : '/usr/bin/ssh',
            'options'  : ["-fullstimer", "-autoexec", "/SAS9.4/SASConfig_bkp/compute/Lev1/SASApp/StoredProcessServer/autoexec.sas"],
            'autoexec' : "libname mylib '/ngs/app/sasp';",
            'host'     : 'remote.linux.host',
            'options'  : ["-fullstimer"]
            }


#ssh      = {'saspath' : '/opt/sasinside/SASHome/SASFoundation/9.4/bin/sas_en',
#            'ssh'     : '/usr/bin/ssh',
#            'host'    : 'remote.linux.host', 
#            'encoding': 'latin1',
#            'options' : ["-fullstimer"]
#            }
#
ssh      = {'saspath'  : '/sashome/compute/SASFoundation/9.4/sas'
            'ssh'      : '/usr/bin/ssh',
            'options'  : ["-fullstimer", "-autoexec", "/ngs/app/sasp/SAS9.4/SASConfig_bkp/compute/Lev1/SASApp/StoredProcessServer/autoexec.sas"],
            'autoexec' : "libname mylib '/ngs/app/sasp';",
            'host'     : 'remote.linux.host',
            'options'  : ["-fullstimer"]
            }
EN

回答 2

Stack Overflow用户

发布于 2020-03-26 02:04:07

您得到的错误是因为字典条目之间缺少逗号:

ssh = {'saspath‘:’/sashome/计算/SASFoundation/9.4/sas‘'ssh’:'/usr/bin/ssh',

在您的路径规范后需要一个逗号。

至于autoexec,选项中列出的是用于加载和运行远程SAS会话的选项,而saspy autoexec是在会话启动并连接之后将为您提交的内容。所以,这是两个稍有不同的东西。

添加逗号,去掉这个语法错误,看看会得到什么。

谢谢,汤姆

票数 2
EN

Stack Overflow用户

发布于 2020-04-09 02:48:07

现在解决在修复语法错误之后收到的错误。AttributeError:模块'os‘没有' waitid’属性STDIO访问方法使用此waitid方法,但它不在Python版本中。我修改了访问方法,使用waitpid而不是waitid,它解决了这个问题,现在这个访问方法在Mac客户端上工作。具体地说,它是通过SSH的STDIO,因为SAS不能在Mac上本地运行。有关此修复的详细信息,请参阅saspy issue https://github.com/sassoftware/saspy/issues/288

这段代码目前是主版本,但它将在我构建的下一个版本中发布;V3.3.5正在研究另一个问题,以确保它不是特定于Mac的。一旦这个问题得到解决,我将构建这个新的版本。

Saumya Ranjan,你能验证这个修复吗?

谢谢,汤姆

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60759702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档