You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过.bat激活venv时自动打开Activate.ps1文件的问题求助

解决VS自动打开Activate.ps1的问题

问题根源

你在批处理文件中直接调用.ps1脚本时,Windows的文件关联设置将.ps1文件默认指向了VS(或文本编辑器),导致系统打开文件而非执行脚本——这不是Python或venv的错误,只是文件关联和调用方式的问题。

修复方案

修改批处理中激活虚拟环境并执行脚本的代码,通过PowerShell命令来执行Activate.ps1,而非直接调用文件:

修改后的关键代码

powershell -ExecutionPolicy Bypass -Command "& 'C:\Users\Me\Documents\DATA_SCIENCE\Projetos\Nome_Projeto\Nome_do_Robo\Scripts\Activate.ps1'; python 'C:\Users\Me\Documents\DATA_SCIENCE\Projetos\Nome_Projeto\ScrapStuff.py'"

完整修改后的.bat文件

@echo off
setlocal

cd C:\Users\Me\Documents\DATA_SCIENCE\Projetos\Nome_Projeto\Nome_do_Robo\Scripts\
set PYTHONPATH=C:\Users\Me\Documents\DATA_SCIENCE\Projetos\Nome_Projeto\Nome_do_Robo\Scripts\

set pathLog=C:\Users\Me\Documents\DATA_SCIENCE\Projetos\_Logs\Nome_Projeto
.
.(Others string variables)
.
set resultado=C:\Users\Me\Documents\DATA_SCIENCE\Projetos\_Resultados_dos_Robos\Nome_Projeto\

taskkill /IM python.exe /F

powershell -ExecutionPolicy Bypass -Command "& 'C:\Users\Me\Documents\DATA_SCIENCE\Projetos\Nome_Projeto\Nome_do_Robo\Scripts\Activate.ps1'; python 'C:\Users\Me\Documents\DATA_SCIENCE\Projetos\Nome_Projeto\ScrapStuff.py'"

补充说明

  • -ExecutionPolicy Bypass:临时绕过PowerShell的执行策略限制,确保脚本能正常执行(若你的系统已设置RemoteSigned或更宽松的执行策略,可省略此参数)
  • 将激活虚拟环境和执行Python脚本放在同一个PowerShell命令中,能保证Python运行在已激活的虚拟环境上下文里
  • 此修改不会影响原有程序的功能,只是改变了.ps1脚本的调用方式,避免被编辑器打开

内容的提问来源于stack exchange,提问作者Matheus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:42:33