Документация Python неофициальный перевод
Содержание страницы

3. Использование Python в WindowsUsing Python on Windows

Этот документ содержит обзор особенностей поведения Windows, которые следует учитывать при использовании Python в Microsoft Windows.

3.1. Установка PythonInstalling Python

В отличие от большинства систем и служб Unix, Windows не требует Python изначально и, соответственно, не предустанавливает его версию. Однако команда CPython уже много лет собирает установщики для Windows (пакеты MSI) для каждого релиза.

В процессе развития Python некоторые платформы, которые ранее поддерживались, больше не поддерживаются (из-за отсутствия пользователей или разработчиков). Обратитесь к PEP 11 для получения подробной информации о всех неподдерживаемых платформах.

  • DOS и Windows 3.x устарели начиная с Python 2.0, а код, специфичный для этих систем, был удалён в Python 2.1.

  • До версии 2.5 Python всё ещё был совместим с Windows 95, 98 и ME (но уже выдавал предупреждение об устаревании при установке). Начиная с Python 2.6 (и всех последующих выпусков) эта поддержка была прекращена, и новые версии, как ожидается, работают только на семействе Windows NT.

  • Windows CE всё ещё поддерживается.

  • Установщик Cygwin также предлагает установить интерпретатор Python (см. исходные коды пакетов Cygwin, релизы мейнтейнера)

Подробную информацию о платформах с предварительно скомпилированными установщиками см. в Python for Windows (and DOS).

См. также

Python на XP

«7 минут до "Hello World!"» автор: Ричард Дулинг, 2006

Установка в Windows

в «Dive into Python: Python from novice to pro» Марк Пилигрим, 2004, ISBN 1-59059-356-1

Для пользователей Windows

в «Installing Python» в «A Byte of Python» Сваруп C H, 2003

3.2. Альтернативные сборкиAlternative bundles

Помимо стандартного дистрибутива CPython, существуют модифицированные пакеты, включающие дополнительную функциональность. Ниже приведён список популярных версий и их ключевые особенности:

ActivePython

Установщик с поддержкой нескольких платформ, документация, PyWin32

Enthought Python Distribution

Популярные модули (например, PyWin32) с соответствующей документацией, набор инструментов для создания расширяемых приложений Python.

Обратите внимание, что эти пакеты, скорее всего, установят более старые версии Python.

3.3. Настройка PythonConfiguring Python

Чтобы Python работал безупречно, возможно, придётся изменить некоторые настройки окружения в Windows.

3.3.1. Отступление: установка переменных окруженияExcursus: Setting environment variables

В Windows есть встроенный диалог для изменения переменных среды (следующее руководство применимо к классическому виду XP): щёлкните правой кнопкой мыши значок вашего компьютера (обычно находится на рабочем столе и называется «Мой компьютер») и выберите Свойства. Затем откройте вкладку Дополнительно и нажмите кнопку Переменные среды.

Кратко, ваш путь:

Мой компьютер ‣ Свойства ‣ Дополнительно ‣ Переменные среды

В этом диалоге можно добавлять или изменять пользовательские и системные переменные. Чтобы изменить системные переменные, нужен полный доступ к компьютеру (т.е. права администратора).

Ещё один способ добавить переменные в окружение – использовать команду set:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

Чтобы сделать этот параметр постоянным, можно добавить соответствующую командную строку в ваш autoexec.bat. msconfig – это графический интерфейс для этого файла.

Просмотреть переменные окружения можно и проще: командная строка автоматически раскрывает строки, заключённые в знаки процента:

echo %PATH%

Подробнее об этом поведении см. set /?.

См. также

https://support.microsoft.com/kb/100843

Переменные среды в Windows NT

https://support.microsoft.com/kb/310519

Как управлять переменными среды в Windows XP

https://www.chem.gla.ac.uk/~louis/software/faq/q1.html

Настройка переменных среды, Луи Дж. Фарруджа

3.3.2. Поиск исполняемого файла PythonFinding the Python executable

Кроме использования автоматически созданного пункта меню «Пуск» для интерпретатора Python, можно запускать Python из командной строки DOS. Чтобы это работало, необходимо задать переменную среды %PATH%, включив в неё каталог дистрибутива Python, разделяя каталоги точкой с запятой. Пример значения переменной может выглядеть так (предполагается, что первые две записи – значения Windows по умолчанию):

C:\WINDOWS\system32;C:\WINDOWS;C:\Python25

Ввод python в командной строке теперь запускает интерпретатор Python. Таким образом, можно также выполнять скрипты с параметрами командной строки; см. документацию Command line.

3.3.3. Поиск модулейFinding modules

Python обычно хранит свою библиотеку (и соответственно папку site-packages) в каталоге установки. Так, если Python был установлен в C:\Python\, библиотека по умолчанию будет находиться в C:\Python\Lib\, а сторонние модули должны храниться в C:\Python\Lib\site-packages\.

Вот как формируется sys.path в Windows:

  • В начале добавляется пустая запись, соответствующая текущей директории.

  • Если существует переменная окружения PYTHONPATH, как описано в Переменные окружения, то её записи добавляются следом. Обратите внимание, что в Windows пути в этой переменной должны разделяться точками с запятой, чтобы отличать их от двоеточия, используемого в идентификаторах дисков (C:\ и т.д.).

  • Дополнительные «пути приложений» можно добавить в реестр как подразделы \SOFTWARE\Python\PythonCore{version}\PythonPath как в разделе HKEY_CURRENT_USER, так и в HKEY_LOCAL_MACHINE. Подразделы, у которых в качестве значения по умолчанию указаны строки путей, разделённые точкой с запятой, приводят к добавлению каждого пути в sys.path. (Обратите внимание, что все известные установщики используют только HKLM, поэтому HKCU обычно пуст.)

  • Если задана переменная окружения PYTHONHOME, она считается «домашним каталогом Python» (Python Home). В противном случае путь к главному исполняемому файлу Python используется для поиска «маркерного файла» (Lib\os.py), чтобы определить «Python Home». Если домашний каталог найден, соответствующие подкаталоги, добавляемые в sys.path (Lib, plat-win и т. д.), определяются относительно этого каталога. В противном случае основной путь Python строится из значения PythonPath, хранящегося в реестре.

  • Если домашний каталог Python не найден, в окружении не указана переменная PYTHONPATH и не найдены записи реестра, используется путь по умолчанию с относительными записями (например, .\Lib;.\plat-win и т.д.).

Конечный результат всего этого:

  • При запуске python.exe или любого другого .exe в основной директории Python (установленной версии или непосредственно из каталога PCbuild) основной путь определяется, а основные пути в реестре игнорируются. Другие «пути приложений» в реестре всегда считываются.

  • Когда Python размещается в другом .exe (другая директория, встраивание через COM и т.д.), «домашний каталог Python» не определяется, поэтому используется основной путь из реестра. Другие «пути приложений» в реестре всегда считываются.

  • Если Python не может найти свой домашний каталог и нет реестра (например, замороженный .exe, какая-то очень странная установка), вы получаете путь с некоторыми путями по умолчанию, но относительными.

3.3.4. Выполнение скриптовExecuting scripts

Скрипты Python (файлы с расширением .py) по умолчанию выполняются программой python.exe. Эта программа открывает терминал, который остаётся открытым, даже если программа использует графический интерфейс. Если этого не требуется, используйте расширение .pyw – тогда скрипт будет по умолчанию выполняться программой pythonw.exe (оба исполняемых файла находятся в корневом каталоге установки Python). Это подавляет появление окна терминала при запуске.

Можно также настроить выполнение всех скриптов .py с помощью pythonw.exe, задав это через стандартные средства, например (может потребоваться права администратора):

  1. Откройте командную строку.

  2. Сопоставьте правильную группу файлов скриптам .py:

    assoc .py=Python.File
    
  3. Перенаправьте все файлы Python на новый исполняемый файл:

    ftype Python.File=C:\Path\to\pythonw.exe "%1" %*
    

3.4. Дополнительные модулиAdditional modules

Хотя Python стремится быть переносимым между всеми платформами, существуют функции, уникальные для Windows. Ряд модулей, как в стандартной библиотеке, так и внешних, а также фрагменты кода позволяют использовать эти возможности.

Стандартные модули, специфичные для Windows, описаны в Специфичные службы MS Windows.

3.4.1. PyWin32

Модуль PyWin32 от Марка Хаммонда – это набор модулей для расширенной поддержки Windows. Он включает утилиты для:

PythonWin – это пример MFC-приложения, поставляемого с PyWin32. Это встраиваемая среда разработки со встроенным отладчиком.

См. также

Win32: Как мне…?

Тим Голден

Python и COM

Дэвид и Пол Бодди

3.4.2. Py2exe

Py2exe – это расширение distutils (см. Расширение Distutils), которое упаковывает скрипты Python в исполняемые программы Windows (файлы *.exe). После этого вы можете распространять своё приложение, не требуя от пользователей установки Python.

3.4.3. WConio

Поскольку расширенный уровень работы с терминалом Python, curses, ограничен Unix-подобными системами, существует библиотека, эксклюзивная для Windows: Windows Console I/O for Python.

WConio – это обёртка для CONIO.H от Turbo-C, используемая для создания текстовых пользовательских интерфейсов.

3.5. Компиляция Python в WindowsCompiling Python on Windows

Если вы хотите скомпилировать CPython самостоятельно, первым делом нужно получить исходный код. Можно загрузить исходный код последнего релиза или просто взять свежую копию из репозитория.

Для Microsoft Visual C++ (компилятора, с помощью которого собираются официальные выпуски Python) дерево исходных кодов содержит файлы решений/проектов. Просмотрите readme.txt в соответствующих каталогах:

Каталог

Версия MSVC

Версия Visual Studio

PC/VC6/

6.0

97

PC/VS7.1/

7.1

2003

PC/VS8.0/

8.0

2005

PCbuild/

9.0

2008

Обратите внимание, что не все эти каталоги сборки полностью поддерживаются. Прочитайте примечания к выпуску, чтобы узнать, с какой версией компилятора собраны официальные выпуски для вашей версии.

Обратитесь к PC/readme.txt за общей информацией о процессе сборки.

Для модулей-расширений обратитесь к Сборка расширений C и C++ в Windows.

См. также

Python + Windows + distutils + SWIG + gcc MinGW

или «Создание расширений Python на C/C++ с помощью SWIG и компиляция с MinGW gcc под Windows» или «Установка расширения Python с помощью distutils и без Microsoft Visual C++» от Sébastien Sauvage, 2003

MingW – расширения Python

Трент Аптед и др., 2007

3.6. Другие ресурсыOther resources

См. также

Программирование на Python в Win32

«Help for Windows Programmers» Марк Хаммонд и Энди Робинсон, O’Reilly Media, 2000, ISBN 1-56592-621-8

Руководство по Python для Windows

Аманда Бирмингем, 2004