首页 > 解决方案 > python的os.uname()模块在windows中不工作,但在wsl 2(ubuntu 20.04)

问题描述

当我在 WSL2(ubuntu 20.04)中用 python 编写代码时:

>>import os
>>os.uname()

输出是:

posix.uname_result(sysname='Linux', nodename='Saqib-PC', release='4.19.104-microsoft-standard', version='#1 SMP Wed Feb 19 06:37:35 UTC 2020', machine='x86_64')

但是当我在 Windows 终端上运行相同的代码时,它给了我一个 AttributeError:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'os' has no attribute 'uname'

此处给出了 Windows 终端和 WSL2 中的两个片段:

在 Windows 终端中: 在此处查看图片

在 WSL2(Ubuntu 20.04)中: 在此处查看图片

顺便说一句:其他 os 模块在两者中的工作文件


谁能告诉我为什么会这样?

标签: pythonwindows-terminalwsl-2

解决方案


os.uname仅适用于Unix发行版/版本的子集:。

文档

可用性:Unix 的最新版本。

在不涉及技术细节的情况下,WSL 仍然是 Unix,就像 Windows 主机上的 Linux VM“仍然”是 Unix(因此os.uname将在那里可用)。


推荐阅读