我想用matplotlib绘制CPU密集型函数。我想使用pypy,但它与matplotlib不兼容。绘图本身并不是CPU密集型的,不需要加速。我想知道是否有从function调用pypy函数的方法。我(Ab)可以使用多处理模块来表示来自C-python的set_executable("/.../pypy")吗?
发布于 2013-12-24 08:12:50
您可以将计算结果写入stdout,并将其传输到另一个程序,该程序从stdin读取要绘制的数据,如下所示:
pypy compute.py | python plot.py 作为中间格式,您可以使用像JSON这样的格式,这种格式可以在pypy和cpython的标准库中使用,并且可以轻松地从python原语转换到python原语。
或者,compute.py可以使用子进程模块在CPython中启动plot.py,而不是依赖于由shell安排的管道。
或者,您可以使用泡菜,它可以保存关于python对象的更多信息,但是要小心,因为泡菜不是一种很好的标准化格式。
如果您使用的CPython和Pypy的最新版本,您可以尝试的另一个选择是multiprocessing.connection模块的侦听器和客户端类。注意,跨python实现监听器和客户端在一些早期版本的Python (python和pypy之间的多处理侦听器和客户端)中被破坏了。multiprocessing.manager模块也可能在不同的cpython和pypy之间工作。
发布于 2013-12-24 07:39:42
如果您具有CPU密集型功能,最好的选择是:
( A)看看numpy能不能帮上忙
( B)看看是否可以在python中优化这些函数,
考虑为您的函数编写C扩展。
( D)考虑在pypy中嵌入cpython和matplotlib,如这里所示。
发布于 2015-05-23 07:54:46
您可以使用execnet。连接不同的Python解释器有几个外鼓室
https://stackoverflow.com/questions/20756732
复制相似问题