Gil*_*tes 12 python python-c-api python-c-extension
我正在尝试调试Python 2.7的C扩展.我使用python2.7调试版本.我建立我的项目,setuptools我setup.py有这样的台词:
ext_modules=[Extension("my.extension",
["my/_extension.c"])]
Run Code Online (Sandbox Code Playgroud)
当我python setup.py install因某种原因调用扩展时编译为带_d后缀的文件,之后,在Python中,我不能这样做import my.extension,我只能这样做import my.extension_d.而我得到的是:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "build/bdist.linux-x86_64/egg/my/extension_d.py", line 7, in <module>
File "build/bdist.linux-x86_64/egg/my/extension_d.py", line 6, in __bootstrap__
ImportError: dynamic module does not define init function (initextension_d)
Run Code Online (Sandbox Code Playgroud)
当然我的扩展没有initextension_d,它只有initextension功能.
这非常不方便,因为我必须更改一些代码并将此_d后缀添加到导入和其他内容中.
是否可以关闭此后缀的前置?或者如何以其他方式处理该问题?也许有一些"官方"的方式?
我使用的是Ubuntu Linux.
为了解决这个问题,你可以在你的C模块中定义函数
void initextension_d()
{ initextension(); }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |