前言:
经常要敲重复的命令:
- python -m venv venv
- .\venv\Scripts\activate.bat (虽然能按 Tab 省几下,多了也烦恼,后来写了四行脚本 start.bat)
DOS批处理 Start.bat
功能:
- 批处理显示支持中文
- 在 Start.bat 文件所在目录执行。
- 用变量 venv_name 来存放 虚拟机 的名字。
- 增加用户输入 虚拟机 名称的提示,默认是 venv。 在第六行已经注释,不执行。不然还要按一下回车
- 创建 Python 虚拟机,如果已经有存在,会跳过创建。
- 创建 Python 虚拟机使用 : --upgrade-deps 参数, 自动将 pip 和 setuptools 升级到最新版本(3.9 以上支持)
- 启动 Python 虚拟机
- 以下需要保存之一: 启动 Python 程序, 保持 CMD/DOS窗口
- 每个(行)功能,都加了注释。
- 在启动 Python 虚拟机后, 从 requirements.txt 安装所列的依赖。
完整文件内容:
@echo off
@chcp 65001 > NUL
rem 支持中文,使用 UTF-8 代码,并抑制屏幕输出
rem set /p venv_name=请输入虚拟环境名称(直接回车默认为venv):
if "%venv_name%"=="" set venv_name=venv
rem 让用户输入虚拟环境名称,如果没有输入则使用默认值 venv
cd /d %~dp0
rem 鼠标点击后,在批处理文件,当前目录执行以下。
IF EXIST %venv_name%\Scripts\activate.bat (
rem 检查虚拟环境是否存在
echo 虚拟环境已存在,直接激活...
call .\%venv_name%\Scripts\activate.bat
rem 运行虚拟机
) ELSE (
echo 创建虚拟环境...
python -m venv --upgrade-deps %venv_name%
rem 创建虚拟机
rem Python 3.9 以上, --upgrade-deps 可以自动将 pip 和 setuptools 升级到最新版本
rem 如果使用 requirements.txt 管理依赖项,建议指定pip版本号
call .\%venv_name%\Scripts\activate.bat
rem 运行虚拟机
echo 从 requirements.txt 安装依赖项
pip install -r requirements.txt > NUL
rem 安装依赖项
)
rem 以下,依据需要保留:
echo 启动 app.py 主程序
rem 用于启动 flask app 主程序
python app.py
pause
rem 暂停批处理执行,以便看到结果
cmd /k
rem cmd 窗口在执行完成后保持打开状态,用于没有 主程序 状态。
我已经把能写注释的地方都加上了,应该很明白。
演示:
上面是注释掉第5行, 不接受输入。
下面是取消注释的运行:可以输入 虚拟环境名称