Hom*_*lli 44 python cython python-extensions
我刚刚使用Cython将我的C库的一部分编译为扩展,作为"概念证明".我设法破解了代码(const纠正问题等),最终得到了一个扩展.
但是,当我尝试导入新创建的扩展时,我收到以下错误:
ImportError: dynamic module does not define init function
Run Code Online (Sandbox Code Playgroud)
我做错了什么,如何解决这个问题?
我在Ubuntu 10.0.4上使用Cythn 0.11.2和Python 2.6.5
Dol*_*gan 69
我发现这个问题的一个常见原因是,当使用distutils安装文件来编译代码时,.pyx基本名称与扩展名不匹配,例如:
ext = Extension(name='different', sources=['cython_ext.pyx']) # Won't work
Run Code Online (Sandbox Code Playgroud)
为了避免这个问题,在这种情况下,扩展名应该完全相同cython_ext.
小智 27
看起来它是Cython中的一个bug /功能.我有同样的事情,但只是添加:
STUFF = "Hi"
Run Code Online (Sandbox Code Playgroud)
到我的.pyx文件的顶部,问题消失了.如果没有全局初始化(cinit或设置全局变量),则表示不生成所需的初始化代码.
| 归档时间: |
|
| 查看次数: |
17994 次 |
| 最近记录: |