You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C++中嵌入Python时,如何修正错误的PYTHONHOME配置

解决C++嵌入Python时PYTHONHOME路径错误的问题

方法一:临时/永久设置系统环境变量

  • 临时生效(仅当前终端有效):
    在启动VS Code的终端中执行以下命令,替换路径为你的Python实际安装目录:
    set PYTHONHOME=C:\Users\**USERNAME**\AppData\Local\Programs\Python\Python310
    set PYTHONPATH=C:\Users\**USERNAME**\AppData\Local\Programs\Python\Python310\Lib;C:\Users\**USERNAME**\AppData\Local\Programs\Python\Python310\DLLs
    
  • 永久生效:
    右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量列表中添加或修改:
    • PYTHONHOME:值为Python安装根目录(如C:\Users\**USERNAME**\AppData\Local\Programs\Python\Python310)
    • PYTHONPATH:值为{PYTHONHOME}\Lib;{PYTHONHOME}\DLLs

方法二:在代码中手动指定路径

在调用Py_Initialize()前,通过Python API手动设置路径,修改后的代码如下:

#include <iostream>
#include <stdio.h>
#include <Python.h>

int main() {
    // 设置PYTHONHOME为你的Python安装目录
    wchar_t pythonHome[] = L"C:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310";
    Py_SetPythonHome(pythonHome);

    // 设置PYTHONPATH,包含Lib和DLLs目录
    wchar_t pythonPath[] = L"C:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310\\Lib;C:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310\\DLLs";
    Py_SetPath(pythonPath);

    Py_Initialize();  
    Py_Finalize();
    return 0;
}

注意:Windows下Python API使用宽字符路径,因此要用wchar_t类型,路径分隔符需写成双反斜杠\\。

方法三:配置VS Code编译任务(tasks.json)

在VS Code的.vscode/tasks.json中添加环境变量配置,确保编译运行时使用正确路径:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe build active file",
            "command": "C:\\MinGW64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                // 链接Python库,根据版本调整
                "-IC:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310\\include",
                "-LC:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310\\libs",
                "-lpython310"
            ],
            "options": {
                "cwd": "${fileDirname}",
                "env": {
                    "PYTHONHOME": "C:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310",
                    "PYTHONPATH": "C:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310\\Lib;C:\\Users\\**USERNAME**\\AppData\\Local\\Programs\\Python\\Python310\\DLLs"
                }
            },
            "problemMatcher": ["$gcc"],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "编译器: C:\\MinGW64\\bin\\g++.exe"
        }
    ]
}

关键注意事项

  • 替换所有**USERNAME**为你的实际系统用户名,路径需与Python实际安装目录完全匹配。
  • 编译时必须链接对应版本的Python库(如-lpython310对应Python3.10),库路径要指向Python安装目录下的libs文件夹。
  • 若使用Anaconda等第三方Python发行版,路径需替换为该发行版的根目录。

内容的提问来源于stack exchange,提问作者Joseph Dinh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:16:17