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

windows.md

227 строк · 20.3 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.2/using/windows.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 3. Использование Python в Windows89Этот документ содержит обзор особенностей поведения Windows, которые следует учитывать при использовании Python в Microsoft Windows.1011## 3.1. Установка Python1213В отличие от большинства систем и служб Unix, Windows не требует Python изначально и, соответственно, не предустанавливает его версию. Однако команда CPython уже много лет собирает установщики для Windows (пакеты MSI) для каждого [релиза](https://python-all.ru/3.2/using/windows.html).1415В процессе развития Python некоторые платформы, которые ранее поддерживались, больше не поддерживаются (из-за отсутствия пользователей или разработчиков). Обратитесь к [**PEP 11**](https://python-all.ru/3.2/using/windows.html) для получения подробной информации о всех неподдерживаемых платформах.1617- До версии 2.5 Python всё ещё был совместим с Windows 95, 98 и ME (но уже выдавал предупреждение об устаревании при установке). Начиная с Python 2.6 (и всех последующих выпусков) эта поддержка была прекращена, и новые версии, как ожидается, работают только на семействе Windows NT.18- [Windows CE](https://python-all.ru/3.2/using/windows.html) всё ещё поддерживается.19- Установщик [Cygwin](https://python-all.ru/3.2/using/windows.html) также предлагает установить [интерпретатор Python](https://python-all.ru/3.2/using/windows.html); он находится в разделе «Interpreters». (см. [исходный код пакета Cygwin](ftp://ftp.uni-erlangen.de/pub/pc/gnuwin32/cygwin/mirrors/cygnus/release/python), [релизы сопровождающего](https://python-all.ru/3.2/using/windows.html))2021Подробную информацию о платформах с предварительно скомпилированными установщиками см. в [Python for Windows (and DOS)](https://python-all.ru/3.2/using/windows.html).2223> **См. также**24>25> **[Python на XP](https://python-all.ru/3.2/using/windows.html)**26>27> «7 минут до "Hello World!"» автор: Ричард Дулинг, 200628>29> **[Установка в Windows](https://python-all.ru/3.2/using/windows.html)**30>31> в «32>33> [Dive into Python: Python from novice to pro](https://python-all.ru/3.2/using/windows.html)34>35> » Марк Пилигрим, 2004, ISBN 1-59059-356-136>37> **[Для пользователей Windows](https://python-all.ru/3.2/using/windows.html)**38>39> в «Installing Python» в «40>41> [A Byte of Python](https://python-all.ru/3.2/using/windows.html)42>43> » Сваруп C H, 20034445## 3.2. Альтернативные пакеты4647Помимо стандартного дистрибутива CPython, существуют модифицированные пакеты, включающие дополнительную функциональность. Ниже приведён список популярных версий и их ключевые особенности:4849**[ActivePython](https://python-all.ru/3.2/using/windows.html)**5051Установщик с поддержкой нескольких платформ, документация, PyWin325253**[Enthought Python Distribution](https://python-all.ru/3.2/using/windows.html)**5455Популярные модули (например, PyWin32) с соответствующей документацией, набор инструментов для создания расширяемых приложений Python.5657Обратите внимание, что эти пакеты, скорее всего, установят *более старые* версии Python.5859## 3.3. Настройка Python6061Чтобы Python работал безупречно, возможно, придётся изменить некоторые настройки окружения в Windows.6263### 3.3.1. Отступление: настройка переменных окружения6465В Windows есть встроенный диалог для изменения переменных среды (следующее руководство применимо к классическому виду XP): щёлкните правой кнопкой мыши значок вашего компьютера (обычно находится на рабочем столе и называется «Мой компьютер») и выберите *Свойства*. Затем откройте вкладку *Дополнительно* и нажмите кнопку *Переменные среды*.6667Кратко, ваш путь:6869> *Мой компьютер ‣ Свойства ‣ Дополнительно ‣ Переменные среды*7071В этом диалоге можно добавлять или изменять пользовательские и системные переменные. Чтобы изменить системные переменные, нужен полный доступ к компьютеру (т.е. права администратора).7273Ещё один способ добавить переменные в окружение – использовать команду **set**:7475```text76set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib77```7879Чтобы сделать эту настройку постоянной, можно добавить соответствующую команду в `autoexec.bat`. **msconfig** – это графический интерфейс к этому файлу.8081Просмотреть переменные окружения можно и проще: командная строка автоматически раскрывает строки, заключённые в знаки процента:8283```text84echo %PATH%85```8687Подробнее об этом поведении см. **set /?**.8889> **См. также**90>91> **[http://support.microsoft.com/kb/100843](https://python-all.ru/3.2/using/windows.html)**92>93> Переменные среды в Windows NT94>95> **[http://support.microsoft.com/kb/310519](https://python-all.ru/3.2/using/windows.html)**96>97> Как управлять переменными среды в Windows XP98>99> **[http://www.chem.gla.ac.uk/~louis/software/faq/q1.html](https://python-all.ru/3.2/using/windows.html)**100>101> Настройка переменных среды, Луи Дж. Фарруджа102103### 3.3.2. Поиск исполняемого файла Python104105Помимо использования автоматически созданного пункта меню «Пуск» для интерпретатора Python, может потребоваться запустить Python в командной строке DOS. Чтобы это работало, необходимо задать переменную окружения `%PATH%`, включив в неё каталог дистрибутива Python, отделив его точкой с запятой от других записей. Пример переменной может выглядеть так (предполагается, что первые две записи – это значения по умолчанию Windows):106107```text108C:\WINDOWS\system32;C:\WINDOWS;C:\Python25109```110111Ввод **python** в командной строке теперь запускает интерпретатор Python. Таким образом, можно также выполнять скрипты с параметрами командной строки; см. документацию [*Command line*](https://python-all.ru/3.2/using/cmdline.html#using-on-cmdline).112113### 3.3.3. Поиск модулей114115Python обычно хранит свою библиотеку (и, соответственно, папку site-packages) в каталоге установки. Так, если вы установили Python в `C:\Python\`, библиотека по умолчанию будет находиться в `C:\Python\Lib\`, а сторонние модули должны храниться в `C:\Python\Lib\site-packages\`.116117Вот как формируется [`sys.path`](https://python-all.ru/3.2/library/sys.html#sys.path) в Windows:118119- В начале добавляется пустая запись, соответствующая текущей директории.120- Если существует переменная окружения [`PYTHONPATH`](https://python-all.ru/3.2/using/cmdline.html#envvar-PYTHONPATH), как описано в [*Переменные среды*](https://python-all.ru/3.2/using/cmdline.html#using-on-envvars), её записи добавляются следующими. Обратите внимание: в Windows пути в этой переменной должны разделяться точкой с запятой, чтобы отличать их от двоеточия, используемого в идентификаторах дисков (`C:\` и т.д.).121- Дополнительные «пути приложений» можно добавить в реестр как подразделы `\SOFTWARE\Python\PythonCore\version\PythonPath` как в ветке `HKEY_CURRENT_USER`, так и `HKEY_LOCAL_MACHINE`. Подразделы, значением которых по умолчанию являются строки путей, разделённые точкой с запятой, приведут к добавлению каждого пути в [`sys.path`](https://python-all.ru/3.2/library/sys.html#sys.path). (Обратите внимание, что все известные установщики используют только HKLM, поэтому HKCU обычно пуста.)122- Если задана переменная окружения [`PYTHONHOME`](https://python-all.ru/3.2/using/cmdline.html#envvar-PYTHONHOME), она считается «домашним каталогом Python». В противном случае путь к основному исполняемому файлу Python используется для поиска «опознавательного файла» (`Lib\os.py`), чтобы определить «домашний каталог Python». Если домашний каталог найден, соответствующие подкаталоги добавляются в [`sys.path`](https://python-all.ru/3.2/library/sys.html#sys.path) (`Lib`, `plat-win` и т.д.) на основе этой папки. В противном случае основной путь Python строится из PythonPath, хранящегося в реестре.123- Если не удаётся найти домашний каталог Python, не указана [`PYTHONPATH`](https://python-all.ru/3.2/using/cmdline.html#envvar-PYTHONPATH) в окружении и не найдены записи в реестре, используется путь по умолчанию с относительными записями (например, `.\Lib;.\plat-win` и т.д.).124125Конечный результат всего этого:126127- При запуске `python.exe` или любого другого .exe в главном каталоге Python (установленной версии или непосредственно из каталога PCbuild) основной путь определяется, а основные пути в реестре игнорируются. Другие «пути приложений» в реестре всегда считываются.128- Когда Python размещается в другом .exe (другая директория, встраивание через COM и т.д.), «домашний каталог Python» не определяется, поэтому используется основной путь из реестра. Другие «пути приложений» в реестре всегда считываются.129- Если Python не может найти свой домашний каталог и нет реестра (например, замороженный .exe, какая-то очень странная установка), вы получаете путь с некоторыми путями по умолчанию, но относительными.130131### 3.3.4. Выполнение скриптов132133Скрипты Python (файлы с расширением `.py`) по умолчанию выполняются **python.exe**. Эта программа открывает терминал, который остаётся открытым, даже если программа использует графический интерфейс. Если этого не требуется, используйте расширение `.pyw` – тогда скрипт будет по умолчанию выполняться **pythonw.exe** (оба исполняемых файла находятся в корневом каталоге установки Python). При этом окно терминала при запуске не отображается.134135Можно также настроить выполнение всех скриптов `.py` с помощью **pythonw.exe**, используя стандартные средства, например (может потребоваться права администратора):1361371. Откройте командную строку.1382. Свяжите правильную группу файлов со скриптами `.py`:139140   ```text141   assoc .py=Python.File142   ```1433. Перенаправьте все файлы Python на новый исполняемый файл:144145   ```text146   ftype Python.File=C:\Path\to\pythonw.exe "%1" %*147   ```148149## 3.4. Дополнительные модули150151Хотя Python стремится быть переносимым между всеми платформами, существуют функции, уникальные для Windows. Ряд модулей, как в стандартной библиотеке, так и внешних, а также фрагменты кода позволяют использовать эти возможности.152153Стандартные модули, специфичные для Windows, описаны в [*Специфичные службы MS Windows*](https://python-all.ru/3.2/library/windows.html#mswin-specific-services).154155### 3.4.1. PyWin32156157Модуль [PyWin32](https://python-all.ru/3.2/using/windows.html) от Марка Хаммонда – это набор модулей для расширенной поддержки Windows. Он включает утилиты для:158159- [Компонентная объектная модель](https://python-all.ru/3.2/using/windows.html) (COM)160- Вызовы Win32 API161- Реестр162- Журнал событий163- [Microsoft Foundation Classes](https://python-all.ru/3.2/using/windows.html) (MFC) пользовательские интерфейсы164165[PythonWin](https://python-all.ru/3.2/using/windows.html) – это пример MFC-приложения, поставляемого с PyWin32. Это встраиваемая среда разработки со встроенным отладчиком.166167> **См. также**168>169> **[Win32: как мне...?](https://python-all.ru/3.2/using/windows.html)**170>171> Тим Голден172>173> **[Python и COM](https://python-all.ru/3.2/using/windows.html)**174>175> Дэвид и Пол Бодди176177### 3.4.2. Py2exe178179[Py2exe](https://python-all.ru/3.2/using/windows.html) – это расширение [`distutils`](https://python-all.ru/3.2/library/distutils.html#module-distutils) (см. [*Extending Distutils*](https://python-all.ru/3.2/distutils/extending.html#extending-distutils)), которое упаковывает скрипты Python в исполняемые программы Windows (файлы `*.exe`). После этого можно распространять приложение без необходимости устанавливать Python пользователям.180181### 3.4.3. WConio182183Поскольку расширенный уровень управления терминалом Python, [`curses`](https://python-all.ru/3.2/library/curses.html#module-curses), ограничен системами, подобными Unix, существует также библиотека, эксклюзивная для Windows: Windows Console I/O для Python.184185[WConio](https://python-all.ru/3.2/using/windows.html) – это обёртка для `CONIO.H` из Turbo-C, используемая для создания текстовых пользовательских интерфейсов.186187## 3.5. Компиляция Python в Windows188189Если вы хотите скомпилировать CPython самостоятельно, первым делом нужно получить [исходный код](https://python-all.ru/3.2/using/windows.html). Можно загрузить исходный код последнего релиза или просто взять свежую [копию из репозитория](https://python-all.ru/3.2/devguide/setup/index.html#checking-out-the-code).190191Для Microsoft Visual C++, компилятора, которым собираются официальные выпуски Python, в дереве исходных кодов содержатся файлы решений/проектов. Смотрите `readme.txt` в соответствующих каталогах:192193| Каталог | Версия MSVC | Версия Visual Studio |194| --- | --- | --- |195| `PC/VC6/` | 6.0 | 97 |196| `PC/VS7.1/` | 7.1 | 2003 |197| `PC/VS8.0/` | 8.0 | 2005 |198| `PCbuild/` | 9.0 | 2008 |199200Обратите внимание, что не все эти каталоги сборки полностью поддерживаются. Прочитайте примечания к выпуску, чтобы узнать, с какой версией компилятора собраны официальные выпуски для вашей версии.201202Общую информацию о процессе сборки можно найти в `PC/readme.txt`.203204Для модулей-расширений обратитесь к [*Сборка расширений C и C++ в Windows*](https://python-all.ru/3.2/extending/windows.html#building-on-windows).205206> **См. также**207>208> **[Python + Windows + distutils + SWIG + gcc MinGW](https://python-all.ru/3.2/using/windows.html)**209>210> или «Создание расширений Python на C/C++ с помощью SWIG и компиляция с MinGW gcc под Windows» или «Установка расширения Python с помощью distutils и без Microsoft Visual C++» от Sébastien Sauvage, 2003211>212> **[MingW – расширения Python](https://python-all.ru/3.2/using/windows.html)**213>214> Трент Аптед и др., 2007215216## 3.6. Прочие ресурсы217218> **См. также**219>220> **[Программирование на Python в Win32](https://python-all.ru/3.2/using/windows.html)**221>222> «Help for Windows Programmers» Марк Хаммонд и Энди Робинсон, O’Reilly Media, 2000, ISBN 1-56592-621-8223>224> **[Руководство по Python для Windows](https://python-all.ru/3.2/using/windows.html)**225>226> Аманда Бирмингем, 2004227