我为我的Python创建了扩展并创建了一个abcPython.dll.如何将此dll导入我的Python脚本?
当我尝试使用以下命令导入它时收到错误消息
>>>import abcPython
>>>Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named abcPython
>>>
Run Code Online (Sandbox Code Playgroud)
我手动创建了一个名为的系统环境变量PYTHONPATH,它存储了路径abcPython.dll,但仍然存在错误.
我怎样才能解决这个问题?
gim*_*mel 13
请仔细遵循Windows上的构建C和C++扩展 - 在第7小节中,它说:
输出文件应称为spam.pyd(在发布模式下)或spam_d.pyd(在调试模式下).该扩展.pyd选择,以避免系统库spam.dll混乱到你的模块可能是一个Python接口
...
在2.5版本中更改:此前,文件的名称,如spam.dll(在释放模式)或spam_d.dll (在调试模式下)也被认可.
尝试重命名您DLL使用.pyd扩展而不是.dll.
(谢谢,Peter Hansen)
该参考指向C示例,其明确包括INIT函数
PyMODINIT_FUNC initexample(void).生成的DLL应重命名example.pyd:
#include "Python.h"
static PyObject *
ex_foo(PyObject *self, PyObject *args)
{
printf("Hello, world\n");
Py_INCREF(Py_None);
return Py_None;
}
static PyMethodDef example_methods[] = {
{"foo", ex_foo, METH_VARARGS, "foo() doc string"},
{NULL, NULL}
};
PyMODINIT_FUNC
initexample(void)
{
Py_InitModule("example", example_methods);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9559 次 |
| 最近记录: |