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

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

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

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

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

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

  • До версии 2.5 Python всё ещё был совместим с Windows 95, 98 и ME (но уже выдавал предупреждение об устаревании при установке). Начиная с Python 2.6 (и всех последующих выпусков) эта поддержка была прекращена, и новые версии, как ожидается, работают только на семействе Windows NT.
  • Windows CE всё ещё поддерживается.
  • Установщик Cygwin также предлагает установить интерпретатор Python; он находится в разделе «Interpreters». (см. исходный код пакета 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 /?.

См. также

http://support.microsoft.com/kb/100843
Переменные среды в Windows NT
http://support.microsoft.com/kb/310519
Как управлять переменными среды в Windows XP
http://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 используется для поиска «опознавательного файла» (Lib\os.py), чтобы определить «домашний каталог Python». Если домашний каталог найден, соответствующие подкаталоги добавляются в 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 (см. Extending Distutils), которое упаковывает скрипты Python в исполняемые программы Windows (файлы *.exe). После этого можно распространять приложение без необходимости устанавливать Python пользователям.

3.4.3. WConio

Поскольку расширенный уровень управления терминалом Python, curses, ограничен системами, подобными Unix, существует также библиотека, эксклюзивная для Windows: Windows Console I/O для 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