1

我正在尝试将新模块添加到连接中。

我有以下文件: main.py UpdateDB.py

在更新数据库中:

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 文件中的一个函数。

4

1 回答 1

1

不确定如何在经典模式下执行此操作(不确定为什么要使用它),但这里是如何在较新的 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!
于 2017-02-28T16:08:50.013 回答