2

私は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 をインポートできないのはなぜですか?

4

1 に答える 1

4

デフォルトの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);
于 2012-12-20T14:55:11.183 に答える