首页 > 编程问答 >在 VSCode 中激活 conda env 时,“which python”和“sys.path”给出不同的输出

在 VSCode 中激活 conda env 时,“which python”和“sys.path”给出不同的输出

时间:2024-07-25 10:24:46浏览次数:11  
标签:python visual-studio-code anaconda conda

当我激活 conda env 时,选择相应的解释器并在 VScode 中启动 Python 乍一看一切似乎都很好:

   (My_env) name@my_computer:~/Bureau/My_env/Code/current_dir$       
   /home/name/anaconda3/envs/My_env/bin/python -m IPython --no-autoindent
   Python 3.12.4 | packaged by Anaconda, Inc. | (main, Jun 18 2024, 15:12:24) [GCC 11.2.0]
   Type 'copyright', 'credits' or 'license' for more information
   IPython 8.12.3 -- An enhanced Interactive Python. Type '?' for help.

sys.path 并且 sys.version 产生相应的解释器。但是,如果我在终端中尝试 which python python --version ,它会引用我的默认 python 版本(对应于基本环境)。

如果我在 VScode 之外重复相同的过程,则不会发生这种奇怪的行为:| ||和 which python 产生相同的输出。 sys.path 此外,在 VScode 内部和外部,

显示基本环境的 python 版本,无论激活的环境如何。 conda info 在删除基本环境的 conda 自动激活之前我的 VScode 终端中显示了两个环境。

一些设置:

VScode 版本:1.91.1 提交:f1e16e1e6214d7c44d078b1f0607b2388f29d729 日期:2024-07-09T22:08:12.169Z 电子:29.4.0 ElectronBuildId:9728852 铬:122.0.6261.156 Node.js:20.9.0 V8:12.2.281.27-电子.0 操作系统:Linux x64 6.5.0-41-generic snap 输出

conda info 操作系统

     active environment : My_env
     active env location : /home/name/anaconda3/envs/My_env
            shell level : 1
       user config file : /home/name/.condarc
    populated config files : /home/name/.condarc
          conda version : 24.1.2
    conda-build version : 24.1.2
         python version : 3.11.7.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.1.2=0
                          __glibc=2.35=0
                          __linux=6.5.0=0
                          __unix=0=0
       base environment : /home/name/anaconda3  (writable)
      conda av data dir : /home/name/anaconda3/etc/conda
     conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/name/anaconda3/pkgs
                          /home/name/.conda/pkgs
       envs directories : /home/name/anaconda3/envs
                          /home/name/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.11.7 Linux/6.5.0-41-generic
    ubuntu/22.04.4 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.6
    aau/0.4.3 c/o84sDdTYbleS3dVd3NF1Aw s/kgiszGL1njuqJYlZjLUa-w e/JXereckVRhPg5ZEODdeeVw
                UID:GID : 1001:1001
             netrc file : None
           offline mode : False

:Ubuntu 22.04 LTS,64位 我尝试更改conda的设置(删除基本环境自动激活),这没有帮助。

我也尝试过

,因为我发现它可能会影响 hash -r 的行为,但没有帮助。 which but it did not help.


这个问题是因为你的终端模拟器启动了一个新的 shell,而该 shell 没有继承你之前激活的 conda 环境。当你在 VS Code 中启动一个终端时,它会使用你登录 shell 的环境,这解释了为什么 conda activate 在 VS Code 外部正常工作。

以下是一些解决此问题的选项:

1. 使用 VS Code 的 “终端:选择默认配置文件” 命令

  • 打开 VS Code 的命令面板 (Ctrl+Shift+P)。
  • 输入 "终端:选择默认配置文件" 并选择它。
  • 选择与你想要的 conda 环境对应的终端配置文件。例如,如果你使用的是 bash,则可以选择 “Bash (conda)”。

2. 在 VS Code 设置中设置 terminal.integrated.shellArgs

  • 打开 VS Code 设置 (Ctrl+,)。
  • 搜索 "terminal.integrated.shellArgs"。
  • 为你的 shell 添加一个参数,用于在启动时自动激活 conda 环境。例如,对于 bash,你可以添加 -l -c "conda activate your_env"

3. 手动在 VS Code 终端中激活 conda 环境

  • 每次打开新的 VS Code 终端时,手动运行 conda activate your_env

4. 使用 VS Code 扩展

  • 一些扩展,如 "Python" 和 "Conda",提供了更方便地管理 conda 环境的方法。

5. 检查你的 .bashrc .zshrc 文件

  • 确保你的 shell 启动文件(例如 .bashrc .zshrc )中没有与 conda 冲突的代码。查找任何可能修改 PATH 环境变量的代码,并确保它们不会覆盖 conda 的设置。

建议尝试上述解决方案,看看哪个最适合你的工作流程。

标签:python,visual-studio-code,anaconda,conda
From: 78787643

相关文章

  • conda配hugging face环境 & 服务器系统盘容量不足
    condacreate--nameenv_namepython=3.10安装pytorch:https://pytorch.org/get-started/locally/condainstalljupytercondainstall-chuggingfacetransformersdatasetsevaluatecondainstall-cfastaiacceleratecondainstallscipyscikit-learn服务器系统盘容......
  • Python课程设计项目期末大作业(含免费源代码)
    选题代码下载地址:https://download.csdn.net/download/s44359487yad/89572689选题程序名称:口红色号识别器选题:基于图像处理、人脸识别和Flask构建的图片口红色号识别及商品推荐系统功能:根据上传的图片自动化图像处理后分析脸部特征,并判断其嘴部妆容状态,依托现......
  • python webbrowser.open 不使用默认浏览器
    对你们来说这是一个好奇的家伙..在我的python程序中webbrowser.open('etc..')打开MicrosoftEdge现在奇怪的是,我在与opensChrome(我的默认值)稍有不同的文件夹中还有另一个python程序关于发生了什么的任何想法吗?!!(我知道有人问过类似的问题,但......
  • 如何在 Mac 上运行 Python 文件来读取 txt 文件并将其写入外部硬盘?
    我目前有一个充满了我想阅读的epub的文件夹,一个我已经阅读过并想再次阅读的epub的文件夹,以及一个相应的文件,其中每个文件都有epub文件的名称。问题是,这些文件夹仅位于我的外部硬盘上。我想要做的是让我的脚本解析这些文件夹中的epub列表,并在我的下载文件夹中创建最新的副......
  • 深入探索:使用Python进行网站数据加载逻辑分析与请求
    作为一名资深的Python程序员,我经常需要从网站中提取数据以供分析或进一步处理。这项任务涉及到对网站数据加载逻辑的深入分析,以及使用Python进行高效的网络请求。在本文中,我将分享如何分析网站的数据加载方式,并使用Python的requests库来模拟浏览器行为,获取所需的数据。网站......
  • 如何将 Python 列表添加到 Excel 中已有值的列的末尾?
    我目前正在尝试编写一个程序,将值附加到列表中,然后将这些值添加到Excel数据表中的列中。每次运行该程序时,我都希望在同一列的末尾添加更多值。所以我不确定如何解决这个问题,而且我在网上找到的其他答案也没有取得多大成功。以下是使用openpyxl库在Python中将......
  • 如何学习Python:糙快猛的大数据之路(学习地图)
    在这个AI和大数据主宰的时代,Python无疑是最炙手可热的编程语言之一。无论你是想转行还是提升技能,学习Python都是一个明智之选。但是,该如何开始呢?今天,让我们聊聊"糙快猛"的Python学习之道。什么是"糙快猛"学习法?"糙快猛"学习法,顾名思义,就是:糙:不追求完美,允许存......
  • Python 中 __get__ 方法的内部原理
    我正在摆弄描述符,结果碰壁了。我以为我可以像使用任何其他方法一样直接调用它,但显然,它似乎不一致或者我遗漏了一些东西。假设我有一个用作描述符的坐标类:|||还有一个Point类,它有2个坐标属性:classCoordinate:def__set_name__(self,owner,name):self._na......
  • 使用带有私钥的云前端生成签名 URL 的问题..使用 Python 3.7 为带有空格的 S3 对象生
    我在使用Python3.7为S3对象生成签名URL时遇到问题。具体来说,键中带有空格的对象的URL会导致“访问被拒绝”错误,而没有空格的对象的URL通常工作正常。但是,并非所有不带空格的对象都能正常工作,带空格的对象始终会失败。fromdatetimeimportdatetime,timedeltaimpo......
  • 有没有更好的方法来在存储库中的一组 python 程序之间共享公共代码
    当我想要快速、轻松地做许多不同的事情时,我会选择Python-即我总是会得到许多Python“程序”-例如一组脚本-或者如果我正在玩一些东西,一堆测试程序等-即始终是许多不同程序的松散集合。但是,我会分享某些内容。例如,如果我正在使用AI-我可能有30个左右完全不相......