I , используемый для , имеет простую настройку для отладки проекта C ++, созданного с помощью scons с зависимостями, предоставленными conda, где я запускаю задачу сборки, как показано ниже:
{
"type": "shell",
"label": "build proj debug",
"command": "scons",
"args": [
"-j8",
"debug=1"
],
"options": {
"cwd": "${workspaceFolder}"
},
"group": {
"kind": "build",
"isDefault": true
}
},
I запустите это как предварительную задачу сборки. Теперь, по любой причине, сообщения scons, напечатанные на терминале, соответствуют тем, которые я получил бы, если бы я вызвал scons из неправильной среды. То есть, похоже, что он не активирует conda специально в терминале, который создан для вышеуказанной задачи сборки. Выходные данные определяются проектом c, но если вы знаете scons, это происходит, если у вас есть 0 зависимостей сборки, доступных для проекта, который вы пытаетесь скомпилировать. Это подразумевает, что запущена некоторая версия scons, но у нее нет библиотек в путях поиска, которые предоставляет conda env.
Я попытался установить python .pythonPath в path/to/my/conda/env/bin/python
. Я также попробовал различные предложения в документации по vscode о настройке моего исполняемого файла vscode для наследования от оболочки, из которой я вызываю code
, чтобы открыть рабочее пространство, и это на самом деле делает его хуже, потому что тогда оно дает:
> Executing task: scons -j8 debug=1 <
zsh:1: command not found: scons
The terminal process terminated with exit code: 127
Terminal will be reused by tasks, press any key to close it.
вместо ошибок, подразумевающих, что базовая миниконда, которую я использовал, активна, что и происходит в оригинальном случае. Я также попытался устранить входные аргументы, используя предложение здесь , в ответе о macs. Тот же результат.
Если я выполняю scons -j8 debug=1
из терминала в каталоге проекта с помощью conda env, мне нужно активировать сборки проекта без жалоб.
Что-то не так с моим интегрированным терминалом, потому что, если я просто открою его и запросю версию python, получите следующее:
(proj) myname@x86_64-apple-darwin13 proj % python --version
Python 2.7.16
(proj) myname@x86_64-apple-darwin13 proj %
Однако, если я нахожусь в файле Terminal.app, то есть в контексте, где все работает обычно я получаю:
(proj) myname@x86_64-apple-darwin13 loos % python --version
Python 3.8.0
(proj) myname@x86_64-apple-darwin13 loos %
Это ожидаемый номер версии conda env, из которого я работаю.
Я немного растерялся, но я Я знаю, что мне, возможно, потребуется предоставить больше информации, чтобы получить помощь. Я буду рад предоставить это, если потребуется.