如何使用pushy来计算调用另一个函数的函数?我收到的错误是由于远程客户端上不存在子函数。
示例
模块test.py:
import os
def func1():
func2()
def func2():
print os.uname()模块main.py
import pushy
rc = pushy.connect('ssh:remote_network_address')
proxy_func = rc.compile(test.func1)
proxy_func()我将得到以下错误:
pushy.protocol.proxy.ExceptionProxy: global name 'func2' is not defined但是,如果'print os.uname()‘位于func1中,并且没有调用func2,则代码将按预期工作。基本上,我怎样才能告诉func2,它是在远程客户端上还是在本地执行呢?我能控制在哪里吗?
发布于 2014-07-01 22:29:00
一种方法是调用execute或eval,函数以globals的形式传入,如下所示:
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实现这一点,因为它不需要globals或locals。
https://stackoverflow.com/questions/23026427
复制相似问题