1

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

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

  • 在 Windows-7 中使用 SUA 包时,这是否允许 python 启用/更改那些依赖于 Posix 的功能?

如果是这样; 完全吗?部分?不确定/未经测试?

如果对前面三种情况中的任何一种都是肯定的,python 是否自动采用新的 posix-os 行为,或者它是否采用标准的 win32-os(意味着它必须配置,或者甚至编译,以启用 Posix模式)?


笔记

  • 我目前使用的是微软提供的 SUA utils/SDK,暂时没有额外的第三方。

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

4

1 回答 1

1

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

Microsoft 的 POSIX 子系统在这方面与 Cygwin 没有什么不同。如果您下载并安装了 CPython 的标准 Windows 二进制分发版,那么如果您稍后安装 Cygwin,它的行为不会改变。如果您希望您的 Python 程序利用 Cygwin 的 Unix 仿真环境,您必须下载安装 CPython 的 Cygwin 版本。另请注意,Cygwin 版本的 Python 失去了很多(如果不是全部)标准 Windows 版本的 CPython 的 Windows 特定功能。

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

于 2014-07-25T16:53:23.093 回答