首页 > 解决方案 > VSCode 终端显示不正确的 python 版本和路径,从 anaconda 启动终端工作正常

问题描述

我已经被这个问题困住了几个小时,并且相信我已经尝试了一切,除了把我的电脑扔出窗外。

我使用 python 3.7 版和 Django 2.1 版在 Anaconda 上设置了一个虚拟环境。如果我从 Anaconda 激活这个虚拟环境,一切都会顺利进行。

(movierecommender) bash-3.2$ python -V
Python 3.7.2
(movierecommender) bash-3.2$ python -m django --version
2.1.5

但是,当我尝试从 vscode 终端激活环境时,我得到

(movierecommender) maxs-MBP:movies maxswann$ python -V
Python 2.7.10
(movierecommender) maxs-MBP:movies maxswann$ python -m django --version
/usr/bin/python: No module named django

Python 3.7.2 64-bit ('movierecommender':conda) 在 vscode 窗口的左下方显示为我的 python 解释器,但仍然得到错误的 python 版本

我认为这可能与 PYTHONPATH 有关,但尝试取消设置和重置,即使在 Anaconda 中我不必担心这一点,因为它会自动添加: "python.pythonPath":"/Users/maxswann/anaconda3/envs/movierecommender/bin/python" 到 settings.json.vscode 文件

使用:

python -c "import sys; print(sys.path)"

Anaconda 推出的终端

['', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python37.zip', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python3.7', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python3.7/lib-dynload', '/Users/maxswann/anaconda3/envs/movierecommender/lib/python3.7/site-packages']

VS Code 终端

['', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Library/Python/2.7/site-packages', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC']

如您所见,它似乎使用的是默认的 mac OS python 版本。

以前有没有其他人遇到过这个问题?我整天都在扯头发试图解决这个问题

标签: pythondjangovisual-studio-codeanaconda

解决方案


我一直面临着完全相同的问题。终于从论坛中找到了解决方法(https://github.com/Microsoft/vscode-python/issues/4434#issuecomment-466600591

只要你在配置中添加一些东西terminal.integrated.env.osx,内容就会PATH在 shell 初始化后附加到(source bash_profile 或 zshrc)。在我的 Mojave 中,我只需将以下空条目添加到我的用户配置中:

"terminal.integrated.env.osx": {
        "PATH": ""
}

然后$PATH将与外部终端相同。


推荐阅读