问题分析
在windows环境下, 如果使用anaconda或者miniforge的conda工具创建了python环境, 可以直接在cmd中使用conda activate指令来启动指定的环境.
但是如果直接将conda activate指令写入bat脚本中, 却无法正常执行.
例如以下bat脚本:
@echo off
conda activate letta
letta server
pause
执行bat脚本, 终端弹窗会闪一下然后直接消失.
解决方法
首先需要调用Anaconda(或miniforge)里的activate.bat
来激活环境, 然后再用这个环境去运行脚本.
举个例子, 我想使用名称为letta
的环境, 然后执行letta server
指令, 就可以写:
@echo off
CALL "C:\xxx\miniforge3\Scripts\activate.bat" letta
letta server
pause
这里CALL的路径对应你电脑上部署的conda路径.
例如你安装的是anaconda, 就要去找anaconda安装路径下的xxx\anaconda3\Scripts\activate.bat
;
我这里是miniforge, 路径就是xxx\miniforge3\Scripts\activate.bat
.
这样处理后, 就可以正常启用指定的conda环境, 然后在指定环境下执行操作.