欢迎大家扫码关注我的微信公众号:
你可以从 GitHub 网站上的工程中 或者从它自己的 PyPI 页面下载 RPyC 的最新发布版。 然而安装 RPyC 最简单的方式是使用:
pip install rpyc
如果你不想跟你的虚拟环境或者系统目录弄混, 可以以用户身份安装:
pip install rpyc --user
在更新版本之前, 请确保你已经阅读过修改日志。 另外, 应始终将你的应用链接到 RPyC 的一个固定主版本上。
平台和解释器
RPyC 是一个纯 python 库, 正因为这样, 它可以运行在任何运行了 Python(或其某个实现版本)的体系结构和平台上, 包括 32 位和 64 位。 对于客户端和服务器也是如此, 它们可能运行在不同的体系结构上。 最新发布板支持:
-
Python(CPython)2.7~3.7
-
在 Python 2.6 上也有可能运行
-
可能可以使用 Jython 和 IronPython。 然而, 这些并不是我主要关心的问题。 (程序)任何时候都可能退出。
交叉解释器的兼容性
请注意, 你不能从一个 Python 2.x 版本的解释器连接到一个 3.x 的版本, 反之亦然。 试着这样做将导致所有奇怪的异常, 所以必须当心。 这是因为 Python 3 版本相较于 Python 2 版本中关于对象模型的使用引入了大量变化: 一些类型被删除了、 添加了或者统一换成其他的了。 Byte 字符串和 Unicode 字符串给了我一个噩梦(它们依然导致了核心解释器中的许多 bugs)。 在此基础上, 许多内建模块和方法被改名或者删除了, 并且许多新的语言特性被添加进来。 这些改变使得 Python 的两个主要版本互不兼容, 更令人悲伤的是, 这些并不能通过 RPyC 的序列化层自动桥接。
这并不说明我没有尝试 ———— 只是它太难了。 这基本上相当于完整的写了由 Python 2 到 Python 3 的自动代码翻译工具, 旁边还有一个 Python 3 到 Python 2 的自动代码翻译工具。 基于此, 我认为, 它如同停机问题一样(当然我们这么说可能是错的, 但是它依然不能使它变得可行)。
说一些离题的话, 你可以从 Python 2.x 连接到 Python 2.y, 只要你只使用二者提供的 types、 modules、 features, 在同样的假定前提下, 你也可以从 Python 3.x 连接到 Python 3.y。
请注意:
作为附注, 不要尝试去混合使用不同版本的 RPyC(比如一个运行着 RPyC 3.1.0 的客户端连接到一个运行着 RPyC 3.2.0 的服务器)。 自从 RPyC 3.0 发布以来, wire-protocol (连接协议)基本上没发生变化, 但是它的库却发生了很大的变化。 它可能会运行, 但是不要在上面进行计算。