我有PythonCode.py:
import os, ctypes
print "ctypes are imported"
和CCode.c:
...
PySys_SetPath(path_to_PythonCode);
PyObject *pModule = PyImport_ImportModule("PythonCode");
if (!pModule) {
PyErr_Print();
return;
}
...
PyErr_Print()
打印:
Traceback (most recent call last): File ".../PythonCode.py", line 1,
in <module> import os, ctypes
ImportError: No module named ctypes
在终端中执行Python代码显示ctypes确实存在:
$ python --version
Python 2.7.1
$ python PythonCode.py
ctypes are imported
为什么Python/C API无法导入ctypes?
最佳答案
您用单个路径替换了默认的 sys.path
列表。相反,您可以插入新路径:
PyObject *sys_path, *path;
sys_path = PySys_GetObject("path");
if (sys_path == NULL || !PyList_Check(sys_path)) {
/* ZOMG! That's so wrong... */
return;
}
path = PyString_FromString(path_to_PythonCode);
PyList_Insert(sys_path, 0, path);
Py_DECREF(path);
关于python - 没有使用 Python/C API 的名为 ctypes 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972547/