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

Windows正常运行但WSL2 Ubuntu中已pip安装pathlib仍提示‘No module named pathlib’的问题求助

问题分析与解决方案

核心原因

  1. 不必要的依赖安装:pathlib是Python 3.4及以上版本的标准库,完全不需要在requirements.txt中手动安装。你安装的pathlib 1.0.1是针对Python 2.x的第三方兼容版本,和Python 3自带的pathlib不是一回事。
  2. Python版本混淆:WSL2 Ubuntu默认情况下,python命令指向Python 2.7,而pip可能对应Python 3的包管理器。你用pip把第三方pathlib装到了Python 3的环境里,但用python snek.py调用的是Python 2,自然会出现ImportError。
  3. 代码逻辑错误:你的runsnek.py里有个无效的elif ''分支,导致Linux环境直接走到else块,执行了错误的Python版本命令。

修复步骤

1. 修正requirements.txt

直接移除pathlib条目,因为Python 3自带这个库:

# pip reqs
# 移除pathlib,Python3.4+已内置该标准库

2. 修正runsnek.py代码

明确指定使用python3和pip3,避免版本混淆,同时修复无效的分支判断:

import os, platform

# 用pip3确保安装到Python3环境
os.system('pip3 install --upgrade -r requirements.txt')

if platform.system() == 'Windows':
    os.system('py snek.py')
elif platform.system() == 'Linux':
    # 明确调用Python3运行脚本
    os.system('python3 snek.py')
else:
    raise Warning('snek could not be ran, try running snek.py instead')

3. 验证WSL中的Python版本(可选)

运行以下命令确认版本:

python --version  # 大概率输出Python 2.7.x
python3 --version # 应该是Python 3.x(比如你的3.8)

为什么Windows能正常运行?

Windows的py命令默认调用Python 3,pip也对应Python 3环境,而且Python 3会优先使用自带的标准库pathlib,即使你安装了第三方版本也不会影响,所以没出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:22:45