激活虚拟环境后如何在批处理中向Python脚本传递参数
解决批处理激活虚拟环境后无法传递参数的问题
你遇到的问题大概率是activate.bat执行后改变了当前工作目录,导致后续相对路径指向错误,或是变量作用域受环境激活影响。以下是两种可行的解决方法:
方法1:直接调用虚拟环境的Python可执行文件(推荐)
无需激活虚拟环境,直接使用虚拟环境目录下的python.exe执行脚本,参数传递不受环境激活流程干扰:
SET file=%~nx1 rem 直接调用虚拟环境的Python执行脚本并传递参数 ..\Scripts\python.exe train.py --data .\data\%file%
注意:原脚本中..\Script\activate.bat路径存在拼写错误,正确路径应为..\Scripts\activate.bat(复数形式)。
方法2:激活环境后恢复原工作目录
如果必须通过激活虚拟环境的方式执行脚本,可以先保存当前工作目录,激活环境后再切换回去,确保相对路径和变量正常生效:
SET file=%~nx1 rem 保存当前工作目录 SET current_dir=%cd% rem 激活虚拟环境(修正路径拼写) CALL ..\Scripts\activate.bat rem 切换回初始工作目录 CD /D %current_dir% rem 执行Python脚本并传递参数 python train.py --data .\data\%file%
内容的提问来源于stack exchange,提问作者YuK
相关产品推荐
相关产品推荐

