Visual Studio Code — активируйте Env перед отладкой

моя текущая установка включает модуль boost-python, который я написал. Для отладки этого модуля я написал отдельную программу на C ++, которая вызывает Python-скрипт из программы C ++.

int main()
{
try
{
PyImport_AppendInittab("oum_export", INIT_MODULE);
Py_Initialize();

PyObject *obj = Py_BuildValue("s", "/media/thomas/Data/seafile/Seafile/TUG/ILearnHeart/Anisotropic\\ Diffusion/python/oum_cpp_opt.py");

FILE *file = _Py_fopen_obj(obj, "r+");
if (file != NULL)
PyRun_SimpleFile(file, "D:/seafile/Seafile/TUG/ILearnHeart/Anisotropic Diffusion/python/oum_cpp_opt.py");
else
cout << "Script file to execute not found" << endl;

}
catch( p::error_already_set )
{
PyErr_Print();
}

Py_Finalize();
}

Это должно позволить мне легко отлаживать обратные вызовы, сделанные для Python-модулей, написанных на C ++. При вызове отладчика vscode программа вылетает с ошибкой

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding

что связано с тем, что я не в правильной среде анаконды. Как я могу сказать Visual-Studio код для входа в правильную среду, прежде чем запускать GDB (т. Е .: «источник активировать aniso_diff && gdb oum_export_test «)?

Вот мой текущий launch.json:

{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "oum_export_test",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/build_linux",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build oum standalone"}
]
}

Я попытался включить команду активации в сборку preLaunchTask, но, похоже, vscode вызывает новую оболочку для gdb.

0

Решение

Для большинства из вас это, наверное, не сложно, но я только что понял, что самое простое решение — просто активировать желаемую среду перед вызовом vscode в той же оболочке.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector