3. Utiliser Python sur Windows¶
Ce document a pour but de donner une vue d’ensemble des comportements spécifiques à Windows dont vous devriez être au courant si vous utilisez Python sur Microsoft Windows.
3.1. Installer Python¶
Unlike most Unix systems and services, Windows does not require Python natively and thus does not pre-install a version of Python. However, the CPython team has compiled Windows installers (MSI packages) with every release for many years.
Avec le développement continu de Python, certaines plateformes qui étaient auparavant prises en charge ne sont plus prises en charge (en raison du manque d’utilisateurs ou de développeurs). Voir PEP 11 pour plus de détails sur toutes les plateformes non prises en charge.
DOS and Windows 3.x are deprecated since Python 2.0 and code specific to these systems was removed in Python 2.1.
Up to 2.5, Python was still compatible with Windows 95, 98 and ME (but already raised a deprecation warning on installation). For Python 2.6 (and all following releases), this support was dropped and new releases are just expected to work on the Windows NT family.
Windows CE est toujours pris en charge.
L’installateur Cygwin offre d’installer l’interpréteur Python (cf. Cygwin package source, Maintainer releases)
See Python for Windows (and DOS) for detailed information about platforms with precompiled installers.
Voir aussi
- Python on XP
« 7 Minutes to « Hello World! » » by Richard Dooling, 2006
- Installing on Windows
in « Dive into Python: Python from novice to pro » by Mark Pilgrim, 2004, ISBN 1-59059-356-1
- For Windows users
in « Installing Python » in « A Byte of Python » by Swaroop C H, 2003
3.2. Paquets alternatifs¶
À part la distribution standard CPython, il y a des paquets modifiés incluant des fonctionnalités additionnelles. La liste qui suit est une liste de versions populaires et de leurs fonctionnalités principales :
- ActivePython
Installeur avec une compatibilité multi-plateforme, de la documentation, et PyWin32
- Enthought Python Distribution
Popular modules (such as PyWin32) with their respective documentation, tool suite for building extensible Python applications
Notice that these packages are likely to install older versions of Python.
3.3. Configurer Python¶
In order to run Python flawlessly, you might have to change certain environment settings in Windows.
3.3.1. Digression : Définition des variables d’environnement¶
Windows has a built-in dialog for changing environment variables (following guide applies to XP classical view): Right-click the icon for your machine (usually located on your Desktop and called « My Computer ») and choose Advanced tab and click the Environment Variables button.
there. Then, open theIn short, your path is:
In this dialog, you can add or modify User and System variables. To change System variables, you need non-restricted access to your machine (i.e. Administrator rights).
Another way of adding variables to your environment is using the set command:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
To make this setting permanent, you could add the corresponding command line to
your autoexec.bat
. msconfig is a graphical interface to this
file.
Viewing environment variables can also be done more straight-forward: The command prompt will expand strings wrapped into percent signs automatically:
echo %PATH%
Consult set /? for details on this behaviour.
Voir aussi
- https://support.microsoft.com/kb/100843
Variables d’environnement dans Windows NT
- https://support.microsoft.com/kb/310519
Comment gérer les variables d’environnement sous Windows XP
- https://www.chem.gla.ac.uk/~louis/software/faq/q1.html
Définir les variables d’environnement, Louis J. Farrugia
3.3.2. Trouver l’exécutable Python¶
Besides using the automatically created start menu entry for the Python
interpreter, you might want to start Python in the DOS prompt. To make this
work, you need to set your %PATH%
environment variable to include the
directory of your Python distribution, delimited by a semicolon from other
entries. An example variable could look like this (assuming the first two
entries are Windows” default):
C:\WINDOWS\system32;C:\WINDOWS;C:\Python25
Typing python on your command prompt will now fire up the Python interpreter. Thus, you can also execute your scripts with command line options, see Ligne de commande documentation.
3.3.3. Recherche de modules¶
Python stocke généralement sa bibliothèque (et donc votre dossier site-packages
) dans le répertoire d’installation. Donc, si vous aviez installé Python dans C:\Python\
, la bibliothèque par défaut résiderait dans C:\Python\Lib\
et les modules tiers devraient être stockés dans C:\Python\Lib\site-packages\
.
This is how sys.path
is populated on Windows:
Une entrée vide est ajoutée au début, qui correspond au répertoire courant.
Si la variable d’environnement
PYTHONPATH
existe, comme décrit dans Variables d’environnement, ses entrées sont ajoutées ensuite. Notez que sur Windows, les chemins d’accès de cette variable doivent être séparés par des points-virgules, pour les distinguer des deux points utilisés dans les identificateurs de lecteur (C:\
etc.).Des « chemins d’accès d’application » supplémentaires peuvent être ajoutés dans le registre en tant que sous-clés de
\SOFTWARE\Python\PythonCore{version}\PythonPath
sous les ruchesHKEY_CURRENT_USER
etHKEY_LOCAL_MACHINE
. Les sous-clés qui ont des chaînes de chemin délimitées par des points-virgules comme valeur par défaut entraînent l’ajout de chaque chemin d’accès àsys.path
. (Notez que tous les installateurs connus utilisent seulement HKLM, donc HKCU est généralement vide.)If the environment variable
PYTHONHOME
is set, it is assumed as « Python Home ». Otherwise, the path of the main Python executable is used to locate a « landmark file » (Lib\os.py
) to deduce the « Python Home ». If a Python home is found, the relevant sub-directories added tosys.path
(Lib
,plat-win
, etc) are based on that folder. Otherwise, the core Python path is constructed from the PythonPath stored in the registry.Si le « Python Home » ne peut pas être trouvé,
PYTHONPATH
n’est pas spécifié dans l’environnement et aucune entrée de registre ne peut être trouvée, un chemin par défaut avec des entrées relatives est utilisé (par exemple.\Lib
;.\plat-win
, etc.).
Le résultat final de tout ceci est :
Lors de l’exécution de
python.exe
, ou tout autre.exe
dans le répertoire principal de Python (soit une version installée, soit directement à partir du répertoire PCbuild), le chemin principal est déduit et les chemins d’accès principaux dans le Registre sont ignorés. D’autres « chemins d’application » dans le registre sont toujours lus.Lorsque Python est hébergé dans un autre fichier
.exe
(répertoire différent, intégré via COM, etc.), le « Python Home » ne sera pas déduit, de sorte que le chemin d’accès principal du registre est utilisé. D’autres « chemins d’application » dans le registre sont toujours lus.If Python can’t find its home and there is no registry (eg, frozen .exe, some very strange installation setup) you get a path with some default, but relative, paths.
3.3.4. Executing scripts¶
Python scripts (files with the extension .py
) will be executed by
python.exe by default. This executable opens a terminal, which stays
open even if the program uses a GUI. If you do not want this to happen, use the
extension .pyw
which will cause the script to be executed by
pythonw.exe by default (both executables are located in the top-level
of your Python installation directory). This suppresses the terminal window on
startup.
You can also make all .py
scripts execute with pythonw.exe,
setting this through the usual facilities, for example (might require
administrative rights):
Launch a command prompt.
Associate the correct file group with
.py
scripts:assoc .py=Python.File
Redirect all Python files to the new executable:
ftype Python.File=C:\Path\to\pythonw.exe "%1" %*
3.4. Modules supplémentaires¶
Même si Python a l’ambition d’être portable parmi toutes les plates-formes, il existe des fonctionnalités propres à Windows. Certains modules, à la fois dans la bibliothèque standard et externe, et des exemples existent pour utiliser ces fonctionnalités.
Les modules standard de Windows sont documentés dans Services spécifiques à MS Windows.
3.4.1. PyWin32¶
The PyWin32 module by Mark Hammond is a collection of modules for advanced Windows-specific support. This includes utilities for:
Component Object Model (COM)
Appels à l’API Win32
Registre
journal d’événement
Microsoft Foundation Classes (MFC) interfaces utilisateur
PythonWin est une exemple d’application MFC livrée avec PyWin32. Il s’agit d’un IDE embarqué avec débogueur intégré.
Voir aussi
- Win32 How Do I…?
par Tim Golden
- Python and COM
par David et Paul Boddie
3.4.2. Py2exe¶
Py2exe is a distutils
extension (see
Extension de Distutils) which wraps Python scripts into executable Windows
programs (*.exe
files). When you have done this, you can distribute
your application without requiring your users to install Python.
3.4.3. WConio¶
Depuis la couche avancée de gestion de terminal de Python, curses
, est limité aux systèmes de type UNIX, il existe une bibliothèque exclusive à Windows : Windows Console I/O for Python.
WConio est un wrapper pour les fichiers Turbo-C CONIO.H
, utilisé pour créer des interfaces texte utilisateur.
3.5. Compiler Python sous Windows¶
If you want to compile CPython yourself, first thing you should do is get the source. You can download either the latest release’s source or just grab a fresh checkout.
For Microsoft Visual C++, which is the compiler with which official Python
releases are built, the source tree contains solutions/project files. View the
readme.txt
in their respective directories:
Répertoire |
version de MSVC |
Version de Visual Studio |
---|---|---|
|
6.0 |
97 |
|
7.1 |
2003 |
|
8.0 |
2005 |
|
9.0 |
2008 |
Note that not all of these build directories are fully supported. Read the release notes to see which compiler version the official releases for your version are built with.
Vérifiez PC/readme.txt
pour des informations générales sur le processus de construction.
Pour les modules d’extension, consultez Construire des extensions C et C++ sur Windows.
Voir aussi
- Python + Windows + distutils + SWIG + gcc MinGW
ou « Creating Python extensions in C/C++ with SWIG and compiling them with MinGW gcc under Windows » ou « Installing Python extension with distutils and without Microsoft Visual C++ » par Sébastien Sauvage, 2003
- MingW – Python extensions
par Trent Apted et al, 2007
3.6. Autres ressources¶
Voir aussi
- Python Programming On Win32
« Help for Windows Programmers » de Mark Hammond et Andy Robinson, O’Reilly Media, 2000, ISBN 1-56592-621-8
- A Python for Windows Tutorial
par Amanda Birmingham, 2004