【发布时间】:2019-07-16 16:43:45
【问题描述】:
有没有办法强制 VS Code 只使用 python3?无论我尝试什么,它总是默认为 python2.7。我尝试选择正确的解释器作为 python3.7。当我打开终端时,它立即使用python2.7,在设置中它指向3.7,但是内置终端很好,总是默认为2.7。
【问题讨论】:
标签: visual-studio-code vscode-settings python-3.7
有没有办法强制 VS Code 只使用 python3?无论我尝试什么,它总是默认为 python2.7。我尝试选择正确的解释器作为 python3.7。当我打开终端时,它立即使用python2.7,在设置中它指向3.7,但是内置终端很好,总是默认为2.7。
【问题讨论】:
标签: visual-studio-code vscode-settings python-3.7
首先,了解integrated terminal of VSCode 默认使用与 Mac 上的终端应用程序相同的环境。
在 Linux 和 macOS 上使用的 shell 默认为
$SHELL,在 PowerShell 上 Windows 10 和cmd.exe在早期版本的 Windows 上。这些可以 通过在用户中设置terminal.integrated.shell.*手动覆盖 settings.
Mac 上的默认$SHELL 是/bin/bash,它在Python2.7 中使用python。所以 VS Code 将使用相同的 python 来表示 Python2.7。当您打开 bash shell 时,它将加载您的 ~/.bash_profile 以应用您添加到其中的自定义别名和其他配置。
解决您的问题的一个方法是将您的~/.bash_profile 编辑为别名python 为python3。但我不推荐这样做,因为这会影响您的所有 bash 会话,甚至是 VS Code 之外的会话。当您运行需要 python 成为系统 Python2.7 的脚本时,这可能会导致令人讨厌的副作用。
您可以改为将 VSCode 配置为为其自己的集成终端加载自己的别名。首先,在你的主目录中创建一个名为 vscode.bash_profile 的文件:
$ cat ~/vscode.bash_profile
alias python=$(which python3)
在我的环境中,python3 是 Python3.7。您可以将其设置为适用于您的环境的内容(例如,可能是 python3.7)。然后,在 VS Code 中,查找 Terminal shell args 设置:
然后打开你的 settings.json 并添加这些行:
"terminal.integrated.shellArgs.osx": [
"--init-file",
"~/vscode.bash_profile",
]
最后,重启 VS Code。下次您打开 VS Code 终端时,python 现在应该正在使用您的 Python 3 安装。这不应该影响您在 VS Code 之外的 bash 会话。
请注意,如果您有一些来自默认 ~/.bash_profile 的自定义设置,您可能需要将其复制到您的 ~/vscode.bash_profile,以便您仍然可以在 VS Code 上使用它(例如更改为 PATH , git-completion 脚本..).
【讨论】: