Visual Studio 2008 を使用して、Windows で Python C API を使用しています。PyDate_Check
マクロやその他の関連マクロを使用しようとすると、静的変数 PyDateTimeAPI が null であるため、アクセス違反が発生します。この変数はPyDateTime_IMPORT
、日時マクロを使用する前に呼び出す必要があるマクロを使用して初期化されます。これは、別のスレッドで新しい Python サブインタープリターを作成するときに行います。
いくつかの質問: - マクロの関数がnull を返す
のはなぜですか。null の戻り値は、モジュールが見つからないためだと理解しています。しかし、どうして datetime モジュールが見つからないのでしょうか? サブインタープリターの sys.path が正しくないためでしょうか? - また、サブインタープリターが初期化された直後、または Python インタープリターが初期化されたときに、正しい場所でマクロを呼び出していますか?PyCObject_Import
PyDateTime_IMPORT
PyDateTime_IMPORT
PyDateTime_IMPORT
意味:
#define PyDateTime_IMPORT \
PyDateTimeAPI = (PyDateTime_CAPI*) PyCObject_Import("datetime", \
"datetime_CAPI")`