2

C コードを実行して Python 関数を呼び出すと、Py_Initialize() でエラーが発生します。エラーは ImportError: No module named site です。Py_SetProgramName(argv[0]) を入れようとしましたが、うまくいきません。cmd 呼び出しは cInterfacePython Test.py 乗算 3 2 (exe は cInterfacePython) です。

4

2 に答える 2

3

埋め込み時にうまく機能するように、PATH env-var と PYTHONPATH を少しいじる必要がありました。

Py_SetProgramName は重要ではありません。主に内部参照用です...

そのため、Python がローカルにインストールされている場所 (Windows マシンのレジストリで利用可能) を見つけて、setenvPATH と PYTHONPATH を適切なものに設定することをお勧めします。それは PATH の python.exe ディレクトリになります(上記のコメントのように)、PYTHONPATH を、組み込みのexeから実行している独自のpythonコードと関連ライブラリを含むディレクトリに設定します。

次に、Py_Initialize を実行して、正しいことが起こるかどうかを確認します。初期化後に PYTHONPATH を変更する必要がある場合は、PySys_SetPath() を使用して sys.path を変更します。

于 2011-11-22T20:17:00.663 に答える
1

私は同じ問題を抱えていました (Windows、Visual Studio と MinGW/g++ の両方)、site.py へのパスを PYTHONPATH に追加することで解決しました。何らかの理由で、それがなくても python.exe の起動は可能で、sys.path にはそのパスが含まれていて (PYTHONPATH が含まれていない場合でも)、「サイトのインポート」はできましたが、Py_Initialize は python と同じことを行うことができませんでした。 .exe でした。

于 2013-01-16T22:27:59.623 に答える