当我激活 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