我正在尝试向连接添加新模块。
我有以下文件: main.py UpdateDB.py
在UpdateDB中:
def UpdateDB():
...
在main.py中:
import UpdateDB
import rpyc
conn = rpyc.classic.connect(...)
rpyc.utils.classic.upload_package(conn, UpdateDB)
conn.modules.UpdateDB.UpdateDB()
我可以弄清楚如何调用UpdateDB()函数。 我明白了:
AttributeArror: 'module' object has no attribute 'UpdateDB'
也许我试图做错了。那么让我解释一下我要做的事情: 我想创建一个到服务器的连接,并在其上运行UpdateDB.py文件中的一个函数。
答案 0 :(得分:0)
不确定如何在经典模式下执行此操作(不确定为什么要使用它),但这里是如何在较新的RPyC服务模式下完成任务。
脚本作为服务器运行:
import rpyc
from rpyc.utils.server import ThreadedServer
class MyService(rpyc.Service):
def exposed_printSomething(self, a):
print a
print "printed on server!"
return 'printed on client!'
if __name__ == '__main__':
server = ThreadedServer(MyService, port=18812)
server.start()
脚本作为客户端运行:
import rpyc
if __name__ == '__main__':
conn = rpyc.connect("127.0.0.1", port=18812)
print conn.root.printSomething("passed to server!")
服务器上的结果:
passed to server!
printed on server!
客户结果:
printed on client!