当前位置: 首页 > 知识库问答 >
问题:

VSCode终端显示不正确的python版本和路径,从蟒蛇启动终端完美运行

漆雕修德
2023-03-14

我已经在这个问题上纠结了好几个小时了,我相信除了把电脑扔出窗外之外,我什么都试过了。

我使用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

我在vscode窗口的左下角显示了Python 3.7.2 64位('movierecomender': conda)作为我的python解释器,但仍然得到了错误的python版本

我认为这可能与PYTHONPATH有关,但我尝试了取消设置和重置,尽管我不必担心Anaconda中的这一点,因为它会自动将:“python.PYTHONPATH”:/Users/maxswann/anaconda3/envs/movierecommender/bin/python“添加到settings.json中。vscode文件

使用:

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

蟒蛇发射终端

['', '/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代码终端

['', '/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版本。

以前还有谁有过这个问题吗?我一整天都在扯头发,想把它修好

共有3个答案

颜修真
2023-03-14

对于Windows用户:

首先,如果您还没有这样做,请使用Ctrl Shift P将VS代码(编辑器,而不是其终端)设置为所需的Python环境——

然后,将VS代码的默认终端从Powershell更改为CMD。这至少对我有用。

陈功
2023-03-14

当时,@Samuel官方接受的答案是正确的。

但是VS代码现在提供了更好的处理方法

简而言之,打开您的用户设置并添加这行代码:

    "terminal.integrated.inheritEnv": false,

这可以防止对您正在使用的任何Python环境管理器(例如,venv、conda等)进行踩踏。

黄仲渊
2023-03-14

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

只要在配置中添加一些东西,terminal.integrated.env。osx,内容将在shell初始化后附加到路径(源bash\u profile或zshrc)。在我的Mojave中,我只需将以下空条目添加到我的用户配置中:

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

然后,$路径将与外部终端相同。

 类似资料:
  • 我有一台新的mac,用自制程序和visual studio代码安装了python 3。默认情况下,我不是python爱好者,我倾向于使用java,但也想尝试一个有趣的项目。 只是我在VSCode中的终端安装了python 3.8版本的系统,但我没有使用它。我想使用我的brew安装版本,如屏幕截图所示。如果我回显$path,它显示正确,我的mac终端显示正确,我的VSCode python插件显示正

  • 我最近在MacOS上安装了Python 3.10.1,并试图将VSCode设置为我的文件编辑器和集成终端。我成功安装了Python扩展,正如你在截图左下角看到的。然而,当我打开终端会话并检查Python的版本时,它显示2.7.18。 [![VSCode窗口的屏幕截图][1] 我尝试了settings.JSON文件中的各种设置,包括“terminal.integrated.inheritEnv:假”

  • 好吧,我对Mac和OSX有点陌生,但我选择了一个,这样我就可以用一个对我的Java程序进行一些故障排除,因为我工作的公司使用OSX和Windows机器的组合。我遇到的问题是,当我从Oracle的网站安装Java7时,它更新了首选项菜单,双击.jar文件时显示可以正确执行这些文件,但终端窗口的版本仍然是1.6.0_43,从终端运行相同的.jar文件会导致运行时错误,原因是版本较旧。 当我导航到/li

  • 在上一篇文章之后,我可以向添加代码,以便从终端打开VSCode。然而,打开的是错误的VSCode。 看,我的Mac上安装了Parallels,而那个版本的Parallels上安装了一个VSCode。当我从上面提到的post运行Terminal命令时,Parallels被启动(即使没有打开),然后它上的VSCode被打开。

  • 我想通过运行以下命令从Mac OSX终端运行/打开Visual Studio代码。我在这里找到了说明: https://code.visualstudio.com/docs/setup 显然我需要在我的文件中包含这一点,所以我做了,但没有用。 我在此处编辑了文件:

  • 假设我有一些资源,我想在用python编写的aws lambda中的不同请求之间共享。我应该如何实现这一点? 是否有“启动后”挂钩,或者我应该在第一次调用时惰性地创建资源?“延迟初始化”的缺点是,它意味着一些请求会随机变慢,因为您选择了一个消费者来承担启动成本。 此外…这些资源会在lambda可执行文件被“冻结”后幸存下来吗? 本页https://docs.aws.amazon.com/lambd