PyCharm Terminal 中彻底搞定 Conda 环境切换(超详细教程)
一、问题根源(搞懂原因,你就不慌了)
当你打开 PyCharm 底部的 Terminal 窗口时,它实际上启动的是你系统里的 PowerShell (或 CMD)程序。
但是,这个 PowerShell 并没有自动加载 Conda 的初始化脚本 ,(没有设置path实际)所以它根本不知道 conda 这个命令是什么,自然就会报 无法将"conda"项识别为 cmdlet...。
而我们在 Windows 开始菜单里打开的"Anaconda Prompt"或"Anaconda PowerShell Prompt"之所以能用 conda,是因为它们启动时自动执行了 一个叫做 conda-hook.ps1 的脚本,这个脚本把 Conda 需要的各种函数和路径挂载到当前会话中。
所以,我们要做的事情很简单:在 PyCharm 的 Terminal 里,手动执行那个脚本,让当前会话识别 conda。
之后我们还可以通过 conda init 把这个初始化过程写入 PowerShell 的配置文件,以后每次打开新终端都会自动加载,一劳永逸。
当前 Terminal 切换环境
powershell
conda activate "003python类"
(环境名有中文和特殊符号,加引号)
执行后提示符会变成 (003python类) PS D:\...>,切换成功。
以后任意切换其他环境
powershell
conda activate 环境名
比如 conda activate base 或 conda activate 001python,自由切换。
让以后每次新开 Terminal 自动识别 conda(一劳永逸)
在当前 Terminal 执行:
powershell
conda init powershell
如果提示"禁止运行脚本",先执行:
powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
然后重新执行 conda init powershell。完成后关闭并重新打开 PyCharm 的 Terminal,以后可以直接用 conda activate 命令,不再需要手动加载 hook。
二、确认你的 Conda 安装路径(这是所有操作的前提)
我的 Conda 安装路径是:D:\015Anaconda3_2025\00an_zhuang
(这个路径下应该包含 shell\condabin\conda-hook.ps1 文件)
如果不知道自己的路径 :可以在文件资源管理器里搜索
conda.exe,它所在的文件夹通常是安装目录\Scripts,那么安装目录就是上一级。或者在开始菜单中找到"Anaconda Prompt"快捷方式,右键→属性→目标,也能看到路径。
你的路径里没有空格,所以命令可以直接写路径,不用加引号(如果路径有空格,必须用双引号括起来)。
三、在 PyCharm Terminal 中手动加载 Conda(临时方案,每次新终端需要重做)
1. 打开 PyCharm 的 Terminal 窗口
- 在 PyCharm 底部工具栏点击
Terminal标签,或者通过菜单View→Tool Windows→Terminal打开。
2. 执行加载脚本(复制下面这行,直接粘贴到终端,按回车)
powershell
& "D:\015Anaconda3_2025\00an_zhuang\shell\condabin\conda-hook.ps1"
命令详解(非常重要,请逐字理解):
| 部分 | 含义 |
|---|---|
& |
PowerShell 的调用运算符(call operator),用于执行后面跟的脚本或可执行文件。 |
"D:\015Anaconda3_2025\00an_zhuang\shell\condabin\conda-hook.ps1" |
双引号括起来的是脚本的完整路径。.ps1 是 PowerShell 脚本文件扩展名。这个 conda-hook.ps1 脚本的作用就是向当前会话注入 conda 命令的定义和环境变量。 |
执行后,屏幕不会显示任何输出(或仅有一行空行),但此时 conda 已经变成可识别命令了。
为什么加双引号? 如果路径里有空格(比如
Program Files),不加引号会出错;你的路径没空格,但习惯上加上更保险。
四、验证 conda 是否成功加载
在同一个终端中,输入:
powershell
conda env list
命令详解:
-
conda-- 现在已经被 hook 脚本激活的命令。 -
env list-- 子命令,表示列出所有 Conda 虚拟环境。
如果执行后显示出类似下面的环境列表(包含 base 和你自己创建的环境),说明加载成功。
你应该会看到类似:
text
# conda environments:
#
base * D:\015Anaconda3_2025\00an_zhuang
001python C:\Users\jiang\.conda\envs\001python
003python类 C:\Users\jiang\.conda\envs\003python类
...
带
*的是当前激活的环境(现在一般是base)。
如果还是报错"conda 不是可识别的命令",说明脚本路径不对或没有执行成功,请检查路径是否正确(注意文件夹名称的大小写和拼写)。
五、切换到你的目标环境(例如 003python类)
现在执行切换命令:
powershell
conda activate "003python类"
命令详解:
-
conda activate-- 激活一个已存在的 Conda 环境。 -
"003python类"-- 环境名称。因为名称里包含中文和特殊字符,必须用双引号(或单引号)括起来,否则 PowerShell 会解析出错。如果环境名是纯英文数字(如base、py312),则不需要引号。
执行后,终端提示符会变成:
text
(003python类) PS D:\000Desktop\wordspace\001python>
前面的 (003python类) 表示当前激活的环境,说明切换成功。
此时你可以随意使用 python、pip 等命令,它们都会在这个环境中运行。
六、让以后每次打开新 Terminal 都自动识别 conda(一劳永逸)
手动加载只在当前终端会话有效。如果你关闭 Terminal 重新打开,又需要重新加载一次,很麻烦。
解决方法是使用 Conda 提供的 conda init 命令,它会修改 PowerShell 的配置文件(Profile),让每次启动 PowerShell 时自动执行 conda-hook.ps1。
步骤 6.1:执行 conda init(当前终端里 conda 已经可用)
powershell
conda init powershell
命令详解:
-
conda init-- 初始化 Conda 环境,使其在 Shell 启动时自动激活。 -
powershell-- 指定要初始化的 Shell 类型(因为你的 PyCharm Terminal 使用的是 PowerShell)。
执行后,你可能会看到提示:modified 之类的,说明已经修改了配置文件。
步骤 6.2:如果遇到"禁止运行脚本"的错误
有时 PowerShell 会因执行策略(ExecutionPolicy)限制而拒绝运行脚本。如果 conda init 报错类似:
text
无法加载文件 ... 因为在此系统上禁止运行脚本
则执行下面这条命令来临时放宽执行策略(仅对当前用户生效):
powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
命令详解:
-
Set-ExecutionPolicy-- 设置 PowerShell 脚本执行策略。 -
RemoteSigned-- 一种策略,允许运行本地编写的脚本,远程脚本必须经过数字签名。 -
-Scope CurrentUser-- 只影响当前用户,不需要管理员权限,安全性较高。
执行后会弹出确认提示,输入 Y(或 A 全部)回车即可。然后重新执行 conda init powershell。
步骤 6.3:重启 PyCharm 或重新打开 Terminal
-
关闭 PyCharm 当前的 Terminal 窗口(点击那个
×)。 -
再重新打开一个新的 Terminal(点击底部
Terminal标签)。 -
这时你会发现,终端顶部直接显示
(base)或者你的项目环境(如果你开启了 PyCharm 的"自动激活"功能),并且直接输入conda env list和conda activate 环境名都能顺利执行,不再需要手动加载 hook 了。
七、进阶技巧:快速切换环境(实用日常操作)
一旦 conda 命令可用,你就可以随时在 Terminal 中切换环境:
-
切换到
base(默认环境):conda activate base -
切换到
001python:conda activate 001python -
切换到
003python类:conda activate "003python类" -
退出当前环境(回到
base):conda deactivate
查看所有环境:conda env list
查看当前环境中的 Python 版本:python --version
八、常见问题及处理
Q1:为什么我执行 conda init 后,新 Terminal 还是找不到 conda?
-
可能你没有正确重启 Terminal(必须关闭标签页再新建)。
-
可能你的 PowerShell 配置文件(Profile)没有被读取。可以尝试重启 PyCharm 或整个电脑。
-
检查 PowerShell 的执行策略:
Get-ExecutionPolicy,确保不是Restricted。
Q2:我执行 hook 脚本时提示"找不到文件"?
-
确认路径是否完全正确:你的安装目录是
D:\015Anaconda3_2025\00an_zhuang,请检查shell\condabin\conda-hook.ps1是否真的存在(用文件管理器查看)。 -
如果目录名有差异(比如
Anaconda3而非015Anaconda3_2025),请调整路径。
Q3:我切换环境后,python 命令还是指向系统的 Python?
- 通常不会,因为
conda activate会修改环境变量PATH,把当前环境的 Python 放在最前面。你可以用where.exe python查看当前使用的是哪个 Python。
Q4:我想让 PyCharm 的项目解释器自动跟随 Terminal 的环境变化?
- 你可以在 PyCharm 设置中为每个项目指定解释器(
File→Settings→Project→Python Interpreter),选中的 Conda 环境会和 Terminal 里激活的环境同步(前提是勾选了Tools→Terminal中的Activate virtualenv)。但本教程聚焦于命令行操作,你可以自行研究。
九、总结
| 步骤 | 目的 | 关键命令 |
|---|---|---|
| 1. 手动加载 | 让当前终端识别 conda |
& "D:\...\conda-hook.ps1" |
| 2. 切换环境 | 激活目标环境 | conda activate "环境名" |
| 3. 永久初始化 | 以后自动加载 | conda init powershell(如权限问题,先改执行策略) |
你现在可以自由地在 PyCharm 的 Terminal 中随意切换 Conda 环境,而无需修改任何 PyCharm 设置,也无需依赖开始菜单里的专用快捷方式。