Python OS-зависимые библиотеки: Windows 7 SUA

При чтении документации по Python многие библиотеки / функции указывают, что они работают по-разному или не работают совсем, в зависимости от операционной системы.

Большинство библиотек зависят от того, является ли ОС POSIX-совместимой или Win32.

  • При использовании пакета SUA с Windows-7 позволяет ли это Python включать / изменять эти функции, зависящие от Posix?

Если так; От корки до корки? Частично? Неопределенный / Непроверены?

Если да для любого из трех предыдущих случаев, принимает ли python новое поведение posix-os автоматически или он принимает стандартные win32-os (то есть он должен быть сконфигурирован или, возможно, даже скомпилирован, чтобы включить режимы Posix)?


Заметки

  • В настоящее время я использую утилиты SUA utils/SDK, предоставленные Microsoft, и в настоящий момент у меня нет сторонних организаций.

  • Для записи я использовал Cygwin/MinGW и считаю их очень полезными, но для целей этого вопроса, давайте просто скажем, что они не могут быть развернуты (хотя я, вероятно, сделаю это позже). Я пытаюсь выяснить, насколько глубоко SUA действительно интегрируется, и имеет ли это какое-либо отношение к типичным установкам Python.

1 ответ

Решение

Нет, установка Подсистемы для Unix-приложений (Windows Services for Unix) никоим образом не меняет поведение двоичного дистрибутива Python. Версия Python, которую вы пытаетесь использовать, должна быть специально создана для поддержки подсистемы Windows POSIX, чтобы использовать ее в своих интересах.

В этом отношении подсистема Microsoft POSIX ничем не отличается от Cygwin. Если вы скачаете и установите стандартный бинарный дистрибутив Windows CPython, его поведение не изменится, если вы позже установите Cygwin. Вам нужно будет загрузить версию CPython для Cygwin, если вы хотите, чтобы ваша программа на Python использовала среду эмуляции Unix Cygwin. Также обратите внимание, что Cygwin-версия Python теряет большую часть, если не все, специфичные для Windows функциональные возможности стандартной версии Windows CPython.

Вы также должны знать, что многие популярные модули Python сторонних производителей зависят от модулей расширения C. Эти модули должны быть собраны для конкретной версии Python, которую вы используете. Хотя многие из этих модулей поддерживают стандартные дистрибутивы Windows CPython, а немногие поддерживают Cygwin, вам нужно будет скомпилировать их самостоятельно для подсистемы POSIX.

Другие вопросы по тегам