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

如何在WSL Ubuntu环境下使用Python3执行.exe文件?

在WSL Ubuntu中用Python3执行.exe文件的解决方法

核心问题分析

WSL Ubuntu默认无法直接运行Windows的.exe文件,你的代码失效主要有两个原因:

  1. 路径错误:你用的相对路径../../../Programmi/...指向的是WSL自身的文件系统,而非Windows的文件目录。WSL会把Windows的磁盘挂载在/mnt/下(比如C盘对应/mnt/c)。
  2. 方法误用:os.open是用于打开文件的API,不能用来执行程序,执行外部程序应该用os.system或subprocess模块。

具体解决方案

方案1:直接调用Windows系统中的.exe(适用于Windows已安装的程序)

WSL支持直接访问Windows的可执行文件,只需把Windows路径转换成WSL格式:

  • Windows路径C:\Programmi\OWASP\Zed Attack Proxy\ZAP.exe对应WSL路径/mnt/c/Programmi/OWASP/Zed Attack Proxy/ZAP.exe

修改后的Python代码示例:

import os

# 方法1:切换到目标目录后执行
os.chdir('/mnt/c/Programmi/OWASP/Zed Attack Proxy/')
os.system('./ZAP.exe')

# 方法2:直接使用完整路径(无需切换目录)
# os.system('/mnt/c/Programmi/OWASP/Zed Attack Proxy/ZAP.exe')

方案2:通过Wine运行.exe(适用于非Windows系统自带的第三方.exe)

如果是独立的.exe文件(未在Windows中安装),需要先在WSL中安装Wine兼容层:

sudo apt update
sudo apt install wine64

然后用Python调用Wine执行:

import os
os.system('wine64 /path/to/your/file.exe')

额外注意事项

  • 若.exe是带图形界面的程序(比如ZAP),需要确保WSL配置了图形界面支持:
    1. 在Windows上安装X Server工具(比如VcXsrv)
    2. 在WSL终端中设置环境变量:export DISPLAY=:0(每次启动WSL都要设置,可写入~/.bashrc永久生效)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:54:05