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

为何Python程序在PowerShell可运行,WSL的Bash中却找不到文件?

问题原因解析:PowerShell与WSL Bash中Python程序的差异

一、文件找不到的核心原因

  • WSL是运行在Windows上的Linux兼容层,它采用Linux文件系统路径规则,不直接识别Windows的盘符路径格式。
  • Windows的C盘在WSL中会被挂载到/mnt/c/目录下,你代码里的C:/Users/me/Desktop/data.txt在WSL环境中对应的正确路径应为/mnt/c/Users/me/Desktop/data.txt。
  • 当你在WSL中使用Windows格式的路径时,Python解释器会将C:/视为一个不存在的Linux目录,因此抛出FileNotFoundError。

二、python与python3命令差异的原因

  • Windows环境中,Python安装程序默认将可执行文件命名为python.exe,因此在PowerShell中输入python即可调用Python解释器。
  • 在Linux(包括WSL的Bash)生态中,历史上python命令默认指向Python 2.x版本,python3指向Python 3.x版本。如今多数发行版已不再预装Python 2,所以必须用python3明确调用Python 3解释器。
  • 若想在WSL中统一使用python命令,可通过创建软链接实现:
    sudo ln -s /usr/bin/python3 /usr/bin/python
    

兼容两种环境的代码示例

如果需要让程序同时在PowerShell和WSL中运行,可以通过判断环境动态切换路径:

import os

# 检测WSL环境(判断/mnt/c是否存在)
if os.path.exists('/mnt/c'):
    file_path = '/mnt/c/Users/me/Desktop/data.txt'
else:
    file_path = 'C:/Users/me/Desktop/data.txt'

with open(file_path) as a:
    content = a.read()
    print(content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:45:27