现在需要将 Python 源码打包成 SO 文件,然后给再用 Python 调用这个生成的 SO 文件。
我查了一些资料,例如 https://www.cnblogs.com/ke10/p/py2so.html,然后照着生成了 SO 文件,接着在使用 ctypes 调用的时候出了问题,报错 AttributeError: build/lib.linux-x86_64-3.6/test.cpython-36m-x86_64-linux-gnu.so: undefined symbol: np_add
。
test.py
文件:
import numpy as np
def np_add(x, y):
return x + y
if __name__ == "__main__":
x = 1
y = 2
print(f"{x} + {y} = {np_add(x, y)}")
setup.py
文件:
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("test.py"))
各位有什么建议吗?或者说不采取这种方法,有其他经过试验的方法可以成功打包并成功调用的吗?
希望过来人给点建议,先谢谢了。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.