проблема получения зависимостей сборки от conda в задаче сборки vscode OSX Catalina - PullRequest
2 голосов
/ 31 января 2020

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, из которого я работаю.

Я немного растерялся, но я Я знаю, что мне, возможно, потребуется предоставить больше информации, чтобы получить помощь. Я буду рад предоставить это, если потребуется.

...