C++はWindows環境でPythonを呼び出します

環境設定

2つから1つを選択してください

1. 32ビットのPythonと32ビットのmingwを準備します。
2. 64ビットのPythonと64ビットのmingw64を準備します。

  • 32 ビット mingw ダウンロード アドレス: https://disk.baidu.com/s/1Z25NxrRuOsjOKWXddTNyeg 抽出コード: dvgl
  • 64 ビット mingw64 ダウンロード アドレス: https://www.onlinedown.net/soft/10045442.htm
    • 可能な方は、mingw の公式 Web サイトから直接ダウンロードすることもできます: https://www.mingw-w64.org/

g++.exe へのパスを環境変数として設定します。

  • mingw64を例に挙げます(32ビットも同様です)
  • 上記でダウンロードしたmingw64を解凍し、中のファイルを任意のパスに解凍します。
    ここに画像の説明を挿入します
    ここに画像の説明を挿入します

Python環境の構築(省略)

g++ と Python のセットアップが完了したら、hello word! を開始できます。



C++ コードを exe プログラムにコンパイルします。

  • 新しい c_call_py.cpp を作成する
#include <stdlib.h>
#include <Python.h>

int main(int argc, char *argv[]){
    
    
    Py_Initialize();
    PyRun_SimpleString("print('hello world')\n");
    Py_Finalize();
    system("pause");  // 暂停
    return 0;
}
  • cmd を開きます (管理者権限で実行することが望ましい)
  • cmd に g++ c_call_py.cpp と入力します -I "自分のコンピューターの Python パス\include" -L "自分のコンピューターの Python パス/libs" -l 私のコンピューターの Python .lib -o test
    • たとえば、私のコンピューターのpython3.8は次のように入力します
    • g++ c_call_py.cpp -I “C:\Program Files\Python38\include” -L"C:/Program Files/Python38/libs" -lpython38 -o test

ここに画像の説明を挿入します

  • コンパイルおよび生成された test.exe
    ここに画像の説明を挿入します
    ここに画像の説明を挿入します

  • 途中で遭遇する可能性のある落とし穴

    1. Baidu 検索で表示されるもののほとんどは、次のコマンド ラインです: g++ main.cpp -I/usr/include/python3.5 -lpython3.5m -o test
      • 長い間ここで行き詰まっていました。win 環境への呼び出しは、このコマンドにはまったく適していません。
    2. 未解決の外部シンボル __imp_Py_Initialize…
      • その理由は、mingw と Python が同じ 64 または 32 ではないためです。最初に 64 ビットの Python を 32 ビットの mingw で呼び出したため、このエラーが発生しました。

おすすめ

転載: blog.csdn.net/Paper_Sheep/article/details/127540980
おすすめ