【问题标题】:communication between Python 3 and Python 2 [closed]Python 3 和 Python 2 之间的通信 [关闭]
【发布时间】:2012-09-26 08:15:57
【问题描述】:

在 Python 3.x 和 Python 2.x 程序之间进行通信的最佳方式是什么?

我们正在编写一个 Web 应用程序,其前端服务器将使用 Python 3 (CherryPy + uWSGI) 编写,主要是因为它是 unicode 密集型应用程序,而 Python 3.x 对 unicode 的支持更加简洁。

但是我们需要使用像 Redis 和 Boto(AWS 客户端)这样的系统,它们还没有 Python 3 支持。

因此我们需要创建一个可以在 Python 3.x 和 2.x 程序之间进行通信的系统。

您认为最好的方法是什么?

【问题讨论】:

标签: python python-3.x python-2.x


【解决方案1】:

最好的方法?用 Python 2.x 编写所有内容。这是一个简单的问题:我可以在 Python 2.x 中做所有事情吗?是的!我可以在 Python 3.x 中做所有事情吗?没有。那你有什么问题?

但是,如果您真的必须使用两个不同的 Python 版本(例如,为什么不使用两种不同的语言?),那么您可能必须创建两个不同的服务器(它们同时是客户端),它们将通过TCP/UDP 或任何你想要的协议。如果您考虑将来扩展应用程序,这实际上可能非常方便。虽然让我警告你:这根本不容易。

【讨论】:

  • 是的,我正在考虑这些问题。但是我应该使用什么通信媒介?消息包?还是别的什么?
  • 为什么不容易?用xml设计一个小的rpc协议可以在100 loc以内完成,只要你没有特殊要求...
  • @l4mpi 是的,设计可能很容易。但是有很多微妙之处,例如使其具有容错性,排队请求/响应,缓存(如果需要)等。我并不是说这非常困难,只是您需要了解这些事情并且比平时更加​​小心。
  • @good_computer 这取决于你的情况。大多数时候,老实说,我会选择 JSON。 MessagePack 看起来不错,不过(之前不知道)。
  • JSON 和 HTTP 怎么样?非常易于使用的协议。
猜你喜欢
  • 1970-01-01
  • 2017-12-15
  • 1970-01-01
  • 2016-10-29
  • 2017-06-03
  • 2011-08-23
  • 2017-08-13
  • 2020-12-10
  • 2011-09-02
相关资源
最近更新 更多