首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python pushy计算子函数

使用python pushy计算子函数
EN

Stack Overflow用户
提问于 2014-04-12 05:19:08
回答 1查看 255关注 0票数 1

如何使用pushy来计算调用另一个函数的函数?我收到的错误是由于远程客户端上不存在子函数。

示例

模块test.py:

代码语言:javascript
复制
import os
def func1():
    func2()
def func2():
    print os.uname()

模块main.py

代码语言:javascript
复制
import pushy
rc = pushy.connect('ssh:remote_network_address')
proxy_func = rc.compile(test.func1)
proxy_func()

我将得到以下错误:

代码语言:javascript
复制
pushy.protocol.proxy.ExceptionProxy: global name 'func2' is not defined

但是,如果'print os.uname()‘位于func1中,并且没有调用func2,则代码将按预期工作。基本上,我怎样才能告诉func2,它是在远程客户端上还是在本地执行呢?我能控制在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 22:29:00

一种方法是调用executeeval,函数以globals的形式传入,如下所示:

代码语言:javascript
复制
import os
def func1():
    func2()

def func2():
    print os.uname()

import pushy
rc = pushy.connect('local:')
# runs:
rc.execute("func1()", globals={'func1':func1})
# runs:
rc.eval("func1()", globals={'func1':func1})

# close 
rc.close()

我得到的结果是:

('Linux','piane',‘3.8.0-38-泛型’,‘#56~精度’-Ubuntu清华3月13日16:22:48 UTC 2014','x86_64')

我不清楚如何通过compile实现这一点,因为它不需要globalslocals

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

https://stackoverflow.com/questions/23026427

复制
相关文章

相似问题

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