PyPy是否支持Cython扩展?

8
我有一个项目,它在pypy中运行(并已经比其python版本实现了很好的加速)。然而,我有一个Cython实现的函数,它比pypy版本要快得多。因此,我想包含这个函数。
问题是,pypy似乎找不到这个模块(即使.so文件与执行的.py脚本在同一个文件夹中)。
ImportError: No module named foo

因此,pypy支持cython吗? 谢谢。
1个回答

11
如果您想在PyPy中使用Cython扩展,您必须重新编译并在PyPy下重新安装它。我建议首先使用virtualenv进行操作。但是,如果这只是为了加速,我非常不建议这样做。CPyext(CPython C API模拟)非常慢,很可能会导致减速。另一方面,优化后的Python应该能够以与优化后的Cython相同的速度运行在PyPy中。
祝好, fijal

嗨fijal,感谢您的建议。我已经有一个编译好的.so文件(使用cython编译)。您所说的虚拟环境是什么意思?我该如何告诉PyPy去哪里找.so文件? - user1829358
1
你必须使用pypy编译C扩展,不能重用CPython .so文件。普通库查找规则适用,请参考Python文档和sys.path。virtualenv是一个项目-请自行搜索谷歌。 - fijal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接