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

.pyw文件未通过pythonw.exe运行反而打开Visual Studio的问题排查

解决.pyw文件默认打开异常与hosts访问配置问题

看起来你遇到了两个关联的小问题:.pyw文件的默认打开程序被意外劫持到Visual Studio,还有任务计划中高权限运行脚本的配置细节需要确认。我给你分点梳理排查和解决步骤:

一、修复.pyw文件默认打开程序被劫持的问题

  • 手动重置文件关联:右键你的.pyw文件,选择「打开方式」→「选择另一个应用」,找到pythonw.exe(一般在你的Python安装目录下,比如C:\Python3.x\pythonw.exe),勾选「始终使用此应用打开.pyw文件」后确认。如果找不到pythonw.exe,直接浏览到Python安装目录手动选择。
  • 检查注册表关联(进阶):如果上面的方法没用,打开注册表编辑器(运行regedit),依次导航到:
    HKEY_CLASSES_ROOT\.pyw,确认默认值是Python.NoConFile;
    再进入HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command,确保默认值是指向pythonw.exe的正确命令,比如:
    "C:\Python39\pythonw.exe" "%1" %*
    
    如果这里被改成了Visual Studio的启动路径,手动修改回来即可。

二、确保任务计划中脚本正确高权限运行

  • 补全hosts文件路径:你的代码里hosts_path写的是C:\Windows\System32\drivers\etc\h...,必须补全为完整路径C:\Windows\System32\drivers\etc\hosts,否则脚本会找不到目标文件。
  • 修正任务计划的启动配置:在任务计划程序的任务「操作」选项卡中,「程序或脚本」要直接填写pythonw.exe的完整路径,「添加参数」里填入你的.pyw文件的完整路径(比如"C:\Users\letto4135\Desktop\python_programs\web_block\your_script.pyw")。不要直接把.pyw文件设为「程序或脚本」,否则会调用被劫持的默认打开程序(VS)。
  • 确认权限与兼容性:除了勾选「以最高权限运行」,还要确保任务的「配置为」选项选择了你的Windows版本(比如Windows 10/11),避免权限兼容性问题。

修正后的代码片段参考

import time
from datetime import datetime as dt

# Temporary hosts path to test
hosts_temp = r"C:\Users\letto4135\Desktop\python_programs\web_block\hosts"
# Hosts path in windows (补全完整路径)
hosts_path = r'C:\Windows\System32\drivers\etc\hosts'

# 示例:读取hosts文件(写入需要高权限)
with open(hosts_path, 'r') as f:
    current_content = f.read()
print(current_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:34:49