我最近搬到了 PyPy。它的速度快得惊人,但是很多 python 库还没有实现。所以我有很多自制的 python 函数,我想在 PyPy 代码中调用它们。
这是我的问题:有没有办法在 PyPy 中调用 python 文件或函数,并向其传递一些参数?
代码示例:
我有一个名为的 python 模块python_code.py
使用 PyPy 不支持的库,matplotlib
例如。
import matplotlib as mp
def my_custom_ploting_function(*args,**kwargs):
some code
我想创建一个名为的 PyPY 模块pypy_code.py
像这样:
from python_code import my_custom_ploting_function
def my_custom_pypy_ploting_function(*args,**kwargs):
my_custom_ploting_function(*args,**kwargs)
但这段代码不起作用,因为 PyPy 无法导入python_code
模块,因为它将尝试导入matplotlib
(PyPy 不支持)。
您不能期望导入模块并让它们共存于运行一半 CPython 和一半 PyPy 的同一个程序中。但是,您可以做的就是主要在两个解释器之一中运行程序,并将另一个解释器视为附加库,您可以在比 Python 对象更低的级别与其进行通信。
例如,如果您只想使用 matplotlib 来显示一些图形,您可以从 PyPy 启动一个 CPython 程序(使用os.system()
or the subprocess
模块)并将数据传递给它以一种或另一种方式显示(例如,通过将其发送到管道中)。如果这对于您想要的东西来说太有限,那么还有其他更复杂的替代方案。例如,您可以加载libpython2.7.so
在 PyPy 中并使用 CFFI 调用其 C API。或者相反:将 PyPy 嵌入到 CPython 中(例如http://jitpy.readthedocs.org/en/latest/ http://jitpy.readthedocs.org/en/latest/ ).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)