你知唔知我系靓仔
python虚拟环境
虚拟环境管理批处理脚本 (README)
简介
这个批处理脚本 (activate_venv.bat
) 用于管理和激活 Python 虚拟环境。它能够自动检测当前目录及其子目录中的虚拟环境,并根据虚拟环境的数量决定是直接激活还是提示用户选择。
功能
-
自动检测虚拟环境:
- 脚本会遍历当前目录及其子目录,查找包含
Scripts\activate.bat
文件的目录,这些目录被认为是 Python 虚拟环境。
- 脚本会遍历当前目录及其子目录,查找包含
-
自动激活单个虚拟环境:
- 如果只找到一个虚拟环境,脚本会自动激活该环境,并在新的命令行窗口中启动。
-
选择激活多个虚拟环境:
- 如果找到多个虚拟环境,脚本会列出所有虚拟环境,并提示用户选择要激活的环境编号。
-
创建新的虚拟环境:
- 如果未找到任何虚拟环境,脚本会提示用户是否创建新的虚拟环境。如果用户选择创建,脚本会要求输入新虚拟环境的名称,并自动创建和激活该环境。
使用方法
-
运行脚本:
- 双击
activate_venv.bat
文件或在命令行中运行activate_venv.bat
。
- 双击
-
自动激活:
- 如果当前目录及其子目录中只有一个虚拟环境,脚本会自动激活该环境,并在新的命令行窗口中启动。
-
选择激活:
- 如果存在多个虚拟环境,脚本会列出所有虚拟环境,并提示用户输入要激活的环境编号。
-
创建新环境:
- 如果未找到任何虚拟环境,脚本会提示用户是否创建新的虚拟环境。输入
Y
并按提示输入新环境名称即可创建并激活新环境。
- 如果未找到任何虚拟环境,脚本会提示用户是否创建新的虚拟环境。输入
注意事项
- 脚本会自动检测当前目录及其子目录中的虚拟环境,因此请确保在包含虚拟环境的目录中运行脚本。
@echo off
setlocal enabledelayedexpansion
:: 初始化虚拟环境路径和环境列表
set VENV_PATH=
set VENV_LIST=
:: 遍历子目录查找虚拟环境
for /r %%d in (.) do (
if exist "%%d\Scripts\activate.bat" (
set "VENV_LIST=!VENV_LIST!%%d;"
)
)
:: 检查找到的虚拟环境
if defined VENV_LIST (
set count=0
for %%v in (!VENV_LIST!) do (
set /a count+=1
)
if !count! == 1 (
:: 只有一个虚拟环境,直接激活
for %%v in (!VENV_LIST!) do (
set "VENV_PATH=%%v"
)
echo 正在激活虚拟环境: !VENV_PATH!
start cmd /k "!VENV_PATH!\Scripts\activate.bat"
echo 虚拟环境已激活,请在新窗口中使用。
) else (
:: 多个虚拟环境,提示用户选择
echo 找到以下虚拟环境:
set count=0
for %%v in (!VENV_LIST!) do (
set /a count+=1
echo !count! - %%v
)
set /p choice=请选择要激活的虚拟环境编号:
set idx=0
for %%v in (!VENV_LIST!) do (
set /a idx+=1
if !idx! == !choice! (
set "VENV_PATH=%%v"
)
)
if defined VENV_PATH (
echo 正在激活虚拟环境: !VENV_PATH!
start cmd /k "!VENV_PATH!\Scripts\activate.bat"
echo 虚拟环境已激活,请在新窗口中使用。
) else (
echo 无效的选择,未激活任何虚拟环境。
)
)
) else (
echo 未找到虚拟环境,是否创建新的虚拟环境?[Y/N]
set /p choice=
if /i "%choice%"=="Y" (
set /p VENV_NAME=请输入新的虚拟环境名称:
set "VENV_PATH=.\%VENV_NAME%"
echo 正在创建虚拟环境 %VENV_NAME% ...
python -m venv "%VENV_PATH%"
echo 虚拟环境 %VENV_NAME% 创建完成。
start cmd /k "!VENV_PATH!\Scripts\activate.bat"
echo 虚拟环境 %VENV_NAME% 已激活,请在新窗口中使用。
) else (
echo 未创建虚拟环境,退出。
exit /b
)
)