Содержание страницы
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 для получения подробной информации о всех неподдерживаемых платформах.
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. Настройка 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 /?.
См. также
- 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. Поиск исполняемого файла 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 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,
задав это через стандартные средства, например (может потребоваться права администратора):
Откройте командную строку.
Сопоставьте правильную группу файлов скриптам
.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. Он включает утилиты для:
Вызовы Win32 API
Реестр
Журнал событий
Microsoft Foundation Classes (MFC) пользовательские интерфейсы
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 в Windows¶Compiling Python on Windows
Если вы хотите скомпилировать CPython самостоятельно, первым делом нужно получить исходный код. Можно загрузить исходный код последнего релиза или просто взять свежую копию из репозитория.
Для Microsoft Visual C++ (компилятора, с помощью которого собираются официальные выпуски
Python) дерево исходных кодов содержит файлы решений/проектов. Просмотрите
readme.txt в соответствующих каталогах:
Каталог |
Версия MSVC |
Версия Visual Studio |
|---|---|---|
|
6.0 |
97 |
|
7.1 |
2003 |
|
8.0 |
2005 |
|
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