Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我正在寻找一种在python2和python3之间共享数据的有效方法_Python_Python 3.x_Python 2.7 - Fatal编程技术网

我正在寻找一种在python2和python3之间共享数据的有效方法

我正在寻找一种在python2和python3之间共享数据的有效方法,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,首先。我的主要代码是python2。最近我在寻找一些功能,经过大量搜索,我能够在python3中找到库 因此,我已经用python3编写了这部分代码。 现在,下一个大问题是数据共享之间的数据共享。因此,我使用os.system()和pickle在两个程序之间共享数据 但是,我发现这种方法非常无效。这会使程序变慢。我的程序是时间关键型的。有没有什么有效的方法可以更快地做到这一点 您可以与内存中的数据库(如数据库)或消息代理(如消息代理)共享数据我知道这不是您想要的答案,但这是未来的解决方案:您应该

首先。我的主要代码是python2。最近我在寻找一些功能,经过大量搜索,我能够在python3中找到库

因此,我已经用python3编写了这部分代码。 现在,下一个大问题是数据共享之间的数据共享。因此,我使用os.system()和pickle在两个程序之间共享数据


但是,我发现这种方法非常无效。这会使程序变慢。我的程序是时间关键型的。有没有什么有效的方法可以更快地做到这一点

您可以与内存中的数据库(如数据库)或消息代理(如消息代理)共享数据

我知道这不是您想要的答案,但这是未来的解决方案:您应该将用python 2编写的“主要代码”移植到python 3。这是2020年,也就是说。随着时间的推移,转移到Python3只会更加困难,而继续使用Python2则更加不安全。还请注意,由于第三方库的原因,您被迫切换到3;这与通常的效果相反,在这种情况下,由于延迟维护依赖关系,人们坚持使用2

您在评论中提到python 2代码使用OpenCV 2.4。这真是个好消息!首先,OpenCV支持Python3已经很长时间了!其次,您的工作听起来大多是数值化的,这使得将本机python部分移植到3变得微不足道(这是
2to3
工具可以为您做的,也许完全可以)。我正在考虑在
打印
等文件中添加缺少的括号。您还可以使用仅在Python3中可用的现代python模式,尤其是其较新版本


我知道,升级代码以使用更新版本的OpenCV并非易事,但作为OpenCV的偶尔用户,我会发现这仍然是迄今为止最简单、最容易维护的解决方案。认为它是一个投资(一个非常好的,没有风险和非常高的回报)。< /P>是否有一个理由不将所有代码都移植到Python 3?这取决于程序的性质。也许您可以让一个Python3工作程序永久运行,并让这两个程序通过sockets////whatever.Ya进行通信。python2代码相当庞大。另外,它还使用了opencv2.4,我想只有Python支持opencv2.4。如果我参加第三部分第二部分会更舒服。目前,我正在努力。如果那不起作用,我想我必须走另一条路。(我不能忍受性能差的代码)谢谢,deceze,我会看一下插座。谢谢Nikos,我会看一下的。