Содержание страницы
3. Использование Python в Windows¶Using Python on Windows
Этот документ содержит обзор особенностей поведения Windows, которые следует учитывать при использовании Python в Microsoft Windows.
3.1. Установка Python¶Installing 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. Настройка Python¶Configuring 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. Поиск исполняемого файла Python¶Finding 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, используя стандартные средства, например (может потребоваться права администратора):
Откройте командную строку.
Свяжите правильную группу файлов со скриптами .py:
assoc .py=Python.File
Перенаправьте все файлы 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. Он включает утилиты для:
- Компонентная объектная модель (COM)
- Вызовы Win32 API
- Реестр
- Журнал событий
- Microsoft Foundation Classes (MFC) пользовательские интерфейсы
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 в Windows¶Compiling 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