python - 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 模块在两者中的工作文件
谁能告诉我为什么会这样?
解决方案
os.uname
仅适用于Unix
发行版/版本的子集:。
从文档:
可用性:Unix 的最新版本。
在不涉及技术细节的情况下,WSL 仍然是 Unix,就像 Windows 主机上的 Linux VM“仍然”是 Unix(因此os.uname
将在那里可用)。
推荐阅读
- sql - 循环遍历表的 SQL 函数
- jms - Apache ActiveMQ 客户端和服务器是否必须使用相同的 jar 文件版本?
- jquery - 从json生成缺少的日期并使用jquery存储到数组中?
- eve - 我们如何使用 python-eve app db 驱动程序动态更改 mongo_prefix?
- string - Julia:字符串的空向量
- vb.net - VB RS.exe - 未定义数据源
- java - 如何解决 Java 错误“pool-1-thread-xxxx”java.lang.OutOfMemory
- python - Django 1.10 模板 - 在 HTML 模板中打印两个相邻的 python 列表
- ruby-on-rails - 使用 select2 从多选 Rails 表单中预选值
- javascript - 数据表服务器端 ajax 和 sAjaxSource 具有不同的请求参数