python - 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 版本。
以前有没有其他人遇到过这个问题?我整天都在扯头发试图解决这个问题
解决方案
我一直面临着完全相同的问题。终于从论坛中找到了解决方法(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
将与外部终端相同。
推荐阅读
- python - 对象类型
无法传递给 C 代码 - 虚拟环境 - node.js - 如何在 fabric-sdk-node 中解码 ProposalResponsePayload
- php - 如何在文件夹包含的每个 html 文件中包含单独的头文件?
- cordova - Cordova 仅触发 wifi 的离线网络事件
- python-2.7 - 使用 Vstack Python 合并字符串的不同维度或列
- c# - 如何找到每个数字在 3 中的所有三位数字,并且数字的加法等于数字本身
- python - 如何用一个替换多个python装饰器?
- ajax - 在codeigniter上使用ajax发送url
- haskell - 将 MonadPlus 导入我的 haskell 程序
- javascript - 在 Firefox 中加载伊朗地图时出错