【发布时间】:2019-04-09 20:35:01
【问题描述】:
我使用python -m venv venv 设置了一个venv,它被vscode 识别为有效的解释器,并使用code-runner vscode 扩展按预期运行我的代码。但是vscode集成的bash终端只使用系统版本的python,即使在运行source /Fake/path/to/env/bin/activate之后也是如此。终端在输入提示上显示(env),但通过os.path.dirname(sys.executable)检查版本显示python的版本是我系统路径中的版本,而不是venv中的版本。所以我正在安装的软件包被安装到系统 python 而不是 venv。
这是 vscode 中的终端而不是 venv 本身的问题,因为当我在本机终端(非集成)中按照上述步骤操作时,我得到了 venv python 的正确路径。
我尝试将 vscode 中的python.venvPath 变量设置为${workspaceFolder}/env 或fake/path/to/env,但都不起作用。我认为可以在 terminal.integrated.shellArgs.macos 设置下设置 bash shell 参数,但无法弄清楚如何让它在启动时运行正确的激活脚本。作为参考,我当前的 vscode 设置如下:
"settings": {
"code-runner.fileDirectoryAsCwd": true;
"code-runner.executorMap": {
"python": "env/bin/python3",
},
"python.venvPath": "${workspaceFolder}/env",
"terminal.integrated.cwd": "${workspaceFolder}",
},
}
基本上,我希望集成终端激活 venv 激活 bash 脚本并临时替换默认选择我的 venv python 的路径。然后我就可以使用 pip3 将相关包安装到 venv 而不是系统 python。但是尽管在输入之前提示显示(env),但实际行为是它在发出命令时指向错误的python版本,例如python3 或 pip3。
任何建议都会很棒!
【问题讨论】:
标签: python macos visual-studio-code vscode-settings python-venv