Python操作系统相关库:Windows7SUA

Python操作系统相关库:Windows7SUA,python,windows,sua,Python,Windows,Sua,在阅读Python文档时,许多库/函数表示它们的工作方式不同,或者根本不工作,具体取决于操作系统 大多数库取决于操作系统是兼容POSIX还是Win32 在Windows-7中使用SUA包时,这是否允许python启用/更改这些功能 依赖Posix的特性 若有,;充分地部分?不确定/未测试 如果前面三种情况中的任何一种是肯定的,那么python是自动采用新的posix操作系统行为,还是采用标准的win32操作系统(这意味着必须对其进行配置,或者甚至编译,才能启用posix模式) 笔记 我目

在阅读Python文档时,许多库/函数表示它们的工作方式不同,或者根本不工作,具体取决于操作系统

大多数库取决于操作系统是兼容POSIX还是Win32

  • 在Windows-7中使用SUA包时,这是否允许python启用/更改这些功能 依赖Posix的特性
若有,;充分地部分?不确定/未测试

如果前面三种情况中的任何一种是肯定的,那么python是自动采用新的posix操作系统行为,还是采用标准的win32操作系统(这意味着必须对其进行配置,或者甚至编译,才能启用posix模式)


笔记
  • 我目前正在使用微软提供的SUA utils/SDK,目前没有其他第三方

  • 为了记录在案,我使用了Cygwin/MinGW,并且发现它们非常有用,但是对于这个问题的范围,让我们只说它们无法部署(尽管我以后可能会部署)。我试图发现SUA真正集成的深度,以及这是否与典型的python安装有任何关系


否,为基于Unix的应用程序(Windows Services for Unix)安装子系统不会以任何方式改变Python二进制发行版的行为。您尝试使用的Python版本必须专门构建以支持Windows POSIX子系统,以便充分利用它

在这方面,微软的POSIX子系统与Cygwin没有什么不同。如果下载并安装CPython的标准Windows二进制发行版,如果以后安装Cygwin,其行为不会改变。如果希望Python程序利用Cygwin的Unix仿真环境,则必须下载并安装Cygwin版本的CPython。还要注意的是,Cygwin版Python失去了标准Windows版CPython的许多(如果不是全部的话)特定于Windows的功能


您还应该知道,许多流行的第三方Python模块都依赖于C扩展模块。这些模块必须针对您正在使用的特定版本的Python构建。虽然其中许多模块支持标准的Windows CPython发行版,很少支持Cygwin,但您需要自己为POSIX子系统编译这些模块。

我没有专门为POSIX sys编译的计划,而是希望python能够适应调用它的sys/shell环境。但是,正如我在OP之后发现的那样,对Win32程序的任何调用(Python for Windows绝对是这样的)都会自动退出SUA shell并重新进入Win32 env(cmd.exe)。我误解了SUA系统在程序执行过程中在Win32 POSIX之间建立了一座神奇的桥梁,但它看起来更像是一个单向符号链接,Win32本机应用程序根本不知道发生了什么。SUA外壳(例如
sh
)只是一个在POSIX子系统中运行的程序。在Windows上,每个可执行文件都标记有它所需的子系统。无论从哪个子系统启动,可执行文件都将在此系统中运行。(请注意,Cygwin程序在Win32子系统中运行。它们使用不同的策略来模拟Unix。)