我有一些python文件,并且所有操作都暴露在Main文件中。我想编译它们并为其他人分发一个.so
。
我尝试用cython编译它们,但是生成了多个.so
(有效,但并不完美)。
示例:
文件夹结构为:
CythonExample/
|——for_call.py
|——setup.py
|——Student.py
setup.py
from distutils.core import setup, Extension
from Cython.Build import cythonize
setup(
ext_modules=cythonize(["Student.py", "for_call.py"]),
)
python setup.py build_ext --inplace
,然后我得到Student.so
和for_call.so
。
我将setup.py修改为:
from distutils.core import setup, Extension
from Cython.Build import cythonize
setup(
name='sayname',
ext_modules=cythonize(Extension("sayname", sources=["Student.py", "for_call.py"], language="c")),
)
然后
python setup.py build_ext --inplace
,很好,仅生成了sayname.so
。但是当我尝试导入它时。
import sayname
ImportError: dynamic module does not define init function (initsayname)
谢谢。