问题背景
想要把一个做好的视频转图片的python文件给别人用。但是发现,打包成exe太大了,我怎么建虚拟环境都不行,然后就想着用批处理来实现,为了移植方便,我必须用相对路径,即用当前bat文件的目录加上虚拟环境来激活虚拟环境,所以有了这篇文章
解决办法
用 %~dp0
来代替即可
%~dp0
示例
这是 start.bat
里面的代码
call %~dp0venv\Scripts\activate
python test.py
exit
第一句话是启动命令行 ,激活该目录下venv下的虚拟环境
第二句执行真正的文件 test.py
第三句退出命令行
后记
只要是有虚拟环境的项目,都可以用该bat文件来执行,只要改变你要执行的文件名
扩展
其他可能有用的代码
@echo off
echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前CMD默认目录:%cd%
echo 目录中有空格也可以加入""避免找不到路径
echo 当前盘符:"%~d0"
echo 当前盘符和路径:"%~dp0"
echo 当前批处理全路径:"%~f0"
echo 当前盘符和路径的短文件名格式:"%~sdp0"
echo 当前CMD默认目录:"%cd%"
pause
简单例子
以上内容可自行测试,完毕