从Python2.x中调用Python3.x程序的最佳方法是什么?

从Python2.x中调用Python3.x程序的最佳方法是什么?,python,python-3.x,subprocess,Python,Python 3.x,Subprocess,我正在编写一个Django web应用程序。到目前为止。出于我的web应用程序的目的,在不太详细的情况下,我基本上需要使用一些只支持Python 3的库。只需说,经过大量深入研究,2.x替代方案被发现 所以我的问题是:我应该怎么做 我的服务器上安装了Python2和Python3,我编写了Python3代码并等待调用。我考虑简单地使用这个模块,从命令行有效地调用Python3,但问题是,这是最好的方法还是有一个我可以在这里使用的最佳实践?在我看来,使用子流程似乎很有技巧。别误会我的意思,我对ha

我正在编写一个Django web应用程序。到目前为止。出于我的web应用程序的目的,在不太详细的情况下,我基本上需要使用一些只支持Python 3的库。只需说,经过大量深入研究,2.x替代方案被发现

所以我的问题是:我应该怎么做


我的服务器上安装了Python2和Python3,我编写了Python3代码并等待调用。我考虑简单地使用这个模块,从命令行有效地调用Python3,但问题是,这是最好的方法还是有一个我可以在这里使用的最佳实践?在我看来,使用
子流程
似乎很有技巧。别误会我的意思,我对hackish没什么意见,我只是想确保我不应该做其他事情。

因为Python 3和Python 2解释器是完全独立的可执行文件,并且在您的系统上安装了独立的库,所以使用
子进程
从一个解释器调用另一个解释器是最佳实践。这根本不是黑客。有许多方法可以在它们之间传递数据,但这两个解释器应该作为单独的进程运行


也就是说,您可能需要记住与启动解释器进程相关的启动时间。这又回到了如何在两个进程之间传递数据。如果Python2代码经常调用Python3例程,则可能需要将Python3程序构造为守护进程。但是您仍然可以使用
子进程来启动它。

将3.x程序作为一个单独的服务运行,然后使用某种RPC机制进行连接?

在Python3中使用并完成整个过程如何?xmlrpc可以是子进程的一个简单替代方案您是否尝试过使用3to2程序来查看未指定的Python3-only库可以自动转换为Python 2吗?你试过使用Martin von Löwis“让所有东西都在Python 3中运行”吗?@Sven Marnach:是的,所以我不打算学习一个全新的框架并重写整个web应用程序,只是为了解决我已经解决的一个小问题。添加Python 2支持在90%的情况下都非常简单。如果你能做到这一点,你可能想和图书馆的作者核实一下。太棒了。非常感谢。至于它是否需要作为一个过程结束。。。这需要一些思考。它只需要在用户注册时调用一次,因此短期内可能不需要调用,但从理论上讲,如果我的webapp变得有用,它可能是一件方便的事情。整个过程应不超过5秒,即使互联网连接非常缓慢。