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¶
Contrairement à la plupart des systèmes Unix, Windows n’inclut pas d’installation de Python par défaut. Pour rendre Python disponible, l’équipe CPython a compilé des installateurs (paquets MSI) pour chaque release depuis plusieurs années. Ces installateurs sont principalement destinés à une installation par utilisateur de Python, avec l’interpréteur et la bibliothèque standard utilisés par un seul utilisateur. Cet installateur peut aussi installer Python pour tous les utilisateurs sur une seule machine et un fichier ZIP séparé est disponible pour intégrer Python dans d’autres applications.
3.1.1. Versions supportées¶
As specified in PEP 11, a Python release only supports a Windows platform while Microsoft considers the platform under extended support. This means that Python 3.5 supports Windows Vista and newer. If you require Windows XP support then please install Python 3.4.
3.1.2. Étapes d’installation¶
Four Python 3.5 installers are available for download - two each for the 32-bit and 64-bit versions of the interpreter. The web installer is a small initial download, and it will automatically download the required components as necessary. The offline installer includes the components necessary for a default installation and only requires an internet connection for optional features. See Installation sans téléchargement for other ways to avoid downloading during installation.
Après avoir lancé l’installateur, deux options s’affichent :
Si vous sélectionnez « Installer Maintenant » (Install Now
):
- Vous n’aurez pas besoin d’avoir les droits d’administrateur (sauf si une mise à jour de la bibliothèque d’exécution C est nécessaire ou si vous installez le Lanceur Python pour Windows pour tous les utilisateurs)
- Python sera installé dans votre répertoire utilisateur
- Le Lanceur Python pour Windows sera installé suivant l’option en bas de la première page
- La bibliothèque standard, la suite de tests, le lanceur et pip seront installés
- Si l’option est cochée, le dossier d’installation sera ajouté à votre
PATH
- Les raccourcis ne seront visibles que pour l’utilisateur actuel
Sélectionner « Personnaliser l’installation » (Customize installation
) vous permettra de sélectionner les fonctionnalités à installer, le chemin d’installation et d’autres options ou des options post-installation. Pour installer des binaires ou symboles de débogage, vous devrez utiliser cette option.
Pour effectuer une installation pour tous les utilisateurs, vous devez sélectionner « Personnaliser l’installation ». Dans ce cas :
- Vous pouvez avoir à donner une approbation ou des identifiants administrateur
- Python sera installé dans le dossier Program Files
- Le Lanceur Python pour Windows sera installé dans le dossier Windows
- Des fonctionnalités optionnelles peuvent être sélectionnées durant l’installation
- La bibliothèque standard peut être pré-compilée en bytecode
- Si sélectionné, le chemin d’installation sera ajouté au
PATH
système - Les raccourcis sont disponibles pour tous les utilisateurs
3.1.3. Installation sans l’interface utilisateur¶
Toutes les options disponibles dans l’installateur graphique peuvent aussi être spécifiées dans l’invite de commande, permettant à des installateurs scriptés de répliquer une installation sur plusieurs machines sans interaction humaine. Ces options peuvent aussi être ajoutées sans enlever l’interface graphique pour changer les valeurs par défauts.
Pour complétement cacher l’interface de l’installateur et installer Python silencieusement, passez l’option /quiet
. Pour sauter les interactions utilisateur mais afficher la progression et les erreurs, passez l’option /passive
. L’option /uninstall
peut être passée pour immédiatement démarrer la suppression de Python – Aucune confirmation ne sera demandée.
Toutes les autres options sont passées sous la forme name=value
, ou value
est normalement soit 0
pour désactiver une fonctionnalité, soit 1
pour activer une fonctionnalité, soit un chemin. Ci-dessous la liste complète des options.
Nom | Description | Valeur par défaut |
---|---|---|
InstallAllUsers | Effectue une installation pour tous les utilisateurs. | 0 |
TargetDir | Le dossier d’installation | Sélection basée sur InstallAllUsers |
DefaultAllUsersTargetDir | Le dossier d’installation par défaut pour les installations pour tous les utilisateurs | %ProgramFiles%\Python X.Y ou %ProgramFiles(x86)%\Python X.Y |
DefaultJustForMeTargetDir | Le dossier d’installation par défaut pour des installations juste pour soi | %LocalAppData%\Programs\PythonXY or
%LocalAppData%\Programs\PythonXY-32 |
DefaultCustomTargetDir | Le dossier d’installation personnalisé par défaut affiché par l’interface utilisateur | (vide) |
AssociateFiles | Crée les associations de fichiers si le lanceur est aussi installé. | 1 |
CompileAll | Compile tous les fichiers .py en .pyc . |
0 |
PrependPath | Add install and Scripts directories
tho PATH and .PY to
PATHEXT |
0 |
Shortcuts | Crée des raccourcis pour l’interpréteur, la documentation et IDLE si installé. | 1 |
Include_doc | Installe le manuel Python | 1 |
Include_debug | Installe les binaires de débogage | 0 |
Include_dev | Installe les fichiers d’en-tête et les bibliothèques développeur | 1 |
Include_exe | Installe python.exe et les fichiers connexes |
1 |
Include_launcher | Installe le Lanceur Python pour Windows. | 1 |
InstallLauncherAllUsers | Installe le Lanceur Python pour Windows pour tous les utilisateurs. | 1 |
Include_lib | Installe la bibliothèque standard et les modules d’extension | 1 |
Include_pip | Installe pip et setuptools |
1 |
Include_symbols | Installe les symboles de débogage (*.pdb ) |
0 |
Include_tcltk | Installe Tcl/Tk et IDLE | 1 |
Include_test | Installe la suite de tests de la bibliothèque standard | 1 |
Include_tools | Installe les scripts utilitaires | 1 |
LauncherOnly | Installe seulement le lanceur. Ceci écrasera la plupart des autres options. | 0 |
SimpleInstall | Désactive la plupart de l’interface d’installation | 0 |
SimpleInstallDescription | Un message personnalisé à afficher quand l’interface d’installation simplifiée est utilisée. | (vide) |
Par exemple, pour installer silencieusement Python sur tout le système, vous pourriez utilisez la commande suivante (depuis une invite de commande administrateur) :
python-3.5.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
Pour permettre à l’utilisateur d’installer facilement une copie de Python sans la suite de tests, vous pouvez proposer un raccourci avec la commande suivante. Cela affichera une page initiale simplifiée et interdira la personnalisation :
python-3.5.0.exe InstallAllUsers=0 Include_launcher=0 Include_test=0
SimpleInstall=1 SimpleInstallDescription="Just for me, no test suite."
(Notez qu’omettre le lanceur omet aussi les associations de fichiers, et n’est recommandé que pour les installations par utilisateur quand il y a aussi une installation complète sur le système qui a inclus de lanceur.)
The options listed above can also be provided in a file named unattend.xml
alongside the executable. This file specifies a list of options and values.
When a value is provided as an attribute, it will be converted to a number if
possible. Values provided as element text are always left as strings. This
example file sets the same options and the previous example:
<Options>
<Option Name="InstallAllUsers" Value="no" />
<Option Name="Include_launcher" Value="0" />
<Option Name="Include_test" Value="no" />
<Option Name="SimpleInstall" Value="yes" />
<Option Name="SimpleInstallDescription">Just for me, no test suite</Option>
</Options>
3.1.4. Installation sans téléchargement¶
Comme certaines fonctionnalités de Python ne sont pas incluses dans l’installateur initial, la sélection de certaines de ces fonctionnalités peut demander une connexion Internet. Pour éviter ce besoin, tous les composants nécessaires peuvent être téléchargés à la demande pour créer un installateur complet qui ne demandera plus de connexion Internet indépendamment des options sélectionnées. Notez que ce téléchargement peut être plus gros que nécessaire, mais lorsqu’un un grand nombre d’installations doivent être faites, il est très utile d’avoir une copie locale.
Execute the following command from Command Prompt to download all possible
required files. Remember to substitute python-3.5.0.exe
for the actual
name of your installer, and to create layouts in their own directories to
avoid collisions between files with the same name.
python-3.5.0.exe /layout [optional target directory]
Vous pouvez aussi spécifier l’option /quiet
pour masquer la progression.
3.1.5. Modification d’une installation¶
Une fois Python installé, vous pouvez ajouter ou supprimer des fonctionnalités depuis l’outil Windows Programs and Features (Programmes et Fonctionnalités). Sélectionnez la ligne Python et choisissez « Uninstall/Change » (Désinstaller/Modifier) pour ouvrir l’installateur en mode maintenance.
« Modify » vous permet d’ajouter ou d’enlever des fonctionnalités en modifiant les cases à cocher (les cases inchangées n’installeront ou ne supprimeront rien). Certaines options ne peuvent pas être modifiées dans ce mode, comme le dossier d’installation. Pour modifier ces options, vous devrez ré-installer Python entièrement.
« Repair » vérifiera tous les fichiers qui doivent être installés avec les paramètres actuels le sont, et remplacera ceux qui ont étés supprimés ou modifiés.
« Uninstall » désinstallera Python entièrement, à l’exception du Lanceur Python pour Windows qui à sa propre ligne dans Programs and Features.
3.1.6. Autres plateformes¶
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.
- Windows CE est toujours pris en charge.
- L’installateur Cygwin offre d’installer l’interpréteur Python (cf. Cygwin package source, Maintainer releases)
Voir Python pour Windows pour des instructions détaillées sur les plateformes avec installateurs pré-compilés.
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
- Anaconda
- Des modules scientifiques populaires (comme numpy, scipy et pandas) et le gestionnaire de paquets
conda
. - Canopy
- Un « environnement d’analyse complet Python » avec des éditeurs et autres outils de développement.
- WinPython
- Distribution spécifique à Windows avec des paquets scientifiques pré-compilés et des outils pour construire des paquets.
Notez que ces paquets peuvent ne pas inclure la dernière version de Python ou d’autres bibliothèques, et ne sont pas maintenus ni supportés par les core devs Python.
3.3. Configurer Python¶
Pour exécuter Python confortablement à partir d’une invite de commandes, vous pouvez envisager de modifier certaines variables d’environnement par défaut dans Windows. Bien que l’installateur offre une option pour configurer les variables PATH
et PATHEXT
pour vous, ce n’est fiable que pour une seule installation à l’échelle du système. Si vous utilisez régulièrement plusieurs versions de Python, pensez à utiliser le Lanceur Python pour Windows.
3.3.1. Digression : Définition des variables d’environnement¶
Windows permet de configurer les variables d’environnement de façon permanente au niveau de l’utilisateur et du système, ou temporairement dans une invite de commandes.
To temporarily set environment variables, open Command Prompt and use the set command:
C:\>set PATH=C:\Program Files\Python 3.5;%PATH%
C:\>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
C:\>python
Ces modifications s’appliqueront à toutes les autres commandes exécutées dans cette console et seront héritées par toutes les applications démarrées à partir de cette console.
Un nom de variable entre des signes pour cent sera remplacé par sa valeur, vous permettant d’ajouter votre nouvelle valeur au début ou à la fin. Ajouter python.exe au début de PATH
est un moyen courant de s’assurer que la version correcte de Python est lancée.
Pour modifier définitivement les variables d’environnement par défaut, recherchez « modifier les variables d’environnement », via le menu démarrer, ou ouvrez « Propriétés Système », Paramètres Système Avancés et cliquez sur le bouton Variables d’Environnement. Dans cette boîte de dialogue, vous pouvez ajouter ou modifier des variables utilisateurs et systèmes. Pour modifier les variables systèmes, vous avez besoin d’un accès non restreint à votre ordinateur (c’est-à-dire aux droits d’administrateur).
Note
Windows va concaténer les variables utilisateurs après les variables systèmes, ce qui peut provoquer des résultats inattendus lors de la modification de PATH
.
La variable PYTHONPATH
est utilisée par toutes les versions de Python 2 et Python 3, vous ne devez donc pas configurer cette variable de façon permanente à moins qu’elle n’ajoute que du code compatible avec toutes les versions de Python installées.
Voir aussi
- https://support.microsoft.com/kb/100843
- Variables d’environnement dans Windows NT
- https://technet.microsoft.com/en-us/library/cc754250.aspx
- La commande SET, pour modifier temporairement les variables d’environnement
- https://technet.microsoft.com/en-us/library/cc755104.aspx
- La commande SETX, pour modifier de façon permanente les variables d’environnement
- 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¶
Modifié dans la version 3.5.
Besides using the automatically created start menu entry for the Python interpreter, you might want to start Python in the command prompt. The installer for Python 3.5 and later has an option to set that up for you.
On the first page of the installer, an option labelled « Add Python 3.5 to
PATH » can be selected to have the installer add the install location into the
PATH
. The location of the Scripts\
folder is also added.
This allows you to type python to run the interpreter, and
pip for the package installer. Thus, you can also execute your
scripts with command line options, see Ligne de commande documentation.
Si vous n’activez pas cette option au moment de l’installation, vous pouvez toujours ré-exécuter l’installateur, sélectionner Modifier et l’activer. Vous pouvez également modifier manuellement le PATH
à l’aide des instructions de Digression : Définition des variables d’environnement. Vous devez définir votre variable d’environnement PATH
pour inclure le répertoire de votre installation Python, délimité par un point-virgule des autres entrées. Une variable d’exemple pourrait ressembler à ceci (en supposant que les deux premières entrées existaient déjà) :
C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Python 3.5
3.4. Lanceur Python pour Windows¶
Nouveau dans la version 3.3.
Le lanceur Python pour Windows est un utilitaire qui facilite la recherche et l’exécution de différentes versions de Python. Il permet aux scripts (ou à la ligne de commande) d’indiquer une préférence pour une version Python spécifique, cherchera et exécutera cette version.
Contrairement à la variable PATH
, le lanceur sélectionne correctement la version la plus appropriée de Python. Il préfère les installations par utilisateur sur celles du système, et les trie par version plutôt que d’utiliser la version la plus récente installée.
3.4.1. Pour commencer¶
3.4.1.1. Depuis la ligne de commande¶
Les installations systèmes de Python 3.3 et ultérieur mettent le lanceur dans votre PATH
. Le lanceur est compatible avec toutes les versions disponibles de Python, peu importe lesquelles sont installées. Pour vérifier que le lanceur est disponible, exécutez la commande suivante dans l’invite de commandes :
py
You should find that the latest version of Python 2.x you have installed is started - it can be exited as normal, and any additional command-line arguments specified will be sent directly to Python.
If you have multiple versions of Python 2.x installed (e.g., 2.6 and 2.7) you will have noticed that Python 2.7 was started - to launch Python 2.6, try the command:
py -2.6
If you have a Python 3.x installed, try the command:
py -3
You should find the latest version of Python 3.x starts.
Si vous voyez l’erreur suivante, le lanceur n’est pas installé :
'py' is not recognized as an internal or external command,
operable program or batch file.
Les installations par utilisateur de Python n’ajoutent pas le lanceur à PATH
sauf si l’option a été sélectionnée lors de l’installation.
3.4.1.2. Environnements virtuels¶
Nouveau dans la version 3.5.
Si le lanceur est exécuté sans version de Python explicite et qu’un environnement virtuel (créé avec le module de la bibliothèque standard venv
ou l’outil externe virtualenv
) est actif, le lanceur exécute l’interpréteur de l’environnement virtuel plutôt que l’interpréteur global. Pour exécuter l’interpréteur global, désactivez l’environnement virtuel ou spécifiez explicitement la version Python globale.
3.4.1.3. À partir d’un script¶
Créons un script Python de test, créez un fichier appelé hello.py
avec le contenu suivant
#! python
import sys
sys.stdout.write("hello from Python %s\n" % (sys.version,))
À partir du répertoire dans lequel se trouve hello.py
, exécutez la commande :
py hello.py
Vous devriez voir le numéro de version du Python 2.x le plus récemment installé. Maintenant, essayez de changer la première ligne en :
#! python3
La commande doit maintenant afficher les dernières informations de Python 3.x. Comme pour les exemples de ligne de commande ci-dessus, vous pouvez spécifier un qualificateur de version plus explicite. En supposant que vous avez installé Python 2.6, essayez de changer la première ligne à #! python2.6
et vous devriez trouver les informations de version 2.6 imprimées.
3.4.1.4. À partir d’associations de fichiers¶
Le lanceur aurait dû être associé à des fichiers Python (des fichiers comme .py
, .pyw
, .pyc
) lorsqu’il a été installé. Cela signifie que lorsque vous double-cliquez sur l’un de ces fichiers à partir de l’Explorateur Windows, le lanceur sera utilisé, et donc vous pouvez utiliser les mêmes installations décrites ci-dessus pour que le script spécifie la version qui doit être utilisée.
L’avantage principal de ceci est qu’un seul lanceur peut prendre en charge plusieurs versions de Python en même temps en fonction du contenu de la première ligne.
3.4.2. Lignes Shebang¶
If the first line of a script file starts with #!
, it is known as a
« shebang » line. Linux and other Unix like operating systems have native
support for such lines and they are commonly used on such systems to indicate
how a script should be executed. This launcher allows the same facilities to
be used with Python scripts on Windows and the examples above demonstrate their
use.
Pour permettre aux shebang dans les scripts Python d’être portables entre UNIX et Windows, ce lanceur prend en charge un certain nombre de commandes « virtuelles » pour spécifier l’interpréteur à utiliser. Les commandes virtuelles prises en charge sont :
/usr/bin/env python
/usr/bin/python
/usr/local/bin/python
python
Par exemple, si la première ligne de votre script commence par
#! /usr/bin/python
Le Python par défaut sera trouvé et utilisé. Comme de nombreux scripts Python écrits pour fonctionner sur UNIX auront déjà cette ligne, ils devraient fonctionner avec le lanceur sans modification. Si vous écrivez un nouveau script sur Windows et que vous pensez qu’il sera utile sur UNIX, vous devez utiliser l’une des lignes shebang commençant par /usr
.
Any of the above virtual commands can be suffixed with an explicit version
(either just the major version, or the major and minor version) - for example
/usr/bin/python2.7
- which will cause that specific version to be located
and used.
La forme /usr/bin/env
de ligne shebang possède une autre propriété spéciale. Avant de rechercher les interpréteurs Python installés, cette forme recherche d’abord l’exécutable dans le PATH
. Cela correspond au comportement du programme Unix env
, qui effectue une recherche dans PATH
.
3.4.3. Arguments dans les lignes shebang¶
Les lignes shebang peuvent également spécifier des options supplémentaires à passer à l’interpréteur Python. Par exemple, si vous avez une ligne shebang :
#! /usr/bin/python -v
Alors, Python sera démarré avec l’option -v
3.4.4. Personnalisation¶
3.4.4.1. Personnalisation via des fichiers INI¶
Two .ini files will be searched by the launcher - py.ini
in the current
user’s « application data » directory (i.e. the directory returned by calling the
Windows function SHGetFolderPath with CSIDL_LOCAL_APPDATA) and py.ini
in the
same directory as the launcher. The same .ini files are used for both the
“console” version of the launcher (i.e. py.exe) and for the “windows” version
(i.e. pyw.exe)
Customization specified in the « application directory » will have precedence over the one next to the executable, so a user, who may not have write access to the .ini file next to the launcher, can override commands in that global .ini file)
3.4.4.2. Personnalisation des versions Python par défaut¶
In some cases, a version qualifier can be included in a command to dictate which version of Python will be used by the command. A version qualifier starts with a major version number and can optionally be followed by a period (“.”) and a minor version specifier. If the minor qualifier is specified, it may optionally be followed by « -32 » to indicate the 32-bit implementation of that version be used.
Par exemple, une ligne shebang valant #!python
n’a pas de qualificateur de version, tandis que #!python3
a un qualificateur de version qui ne spécifie qu’une version majeure.
If no version qualifiers are found in a command, the environment variable
PY_PYTHON
can be set to specify the default version qualifier - the default
value is « 2 ». Note this value could specify just a major version (e.g. « 2 ») or
a major.minor qualifier (e.g. « 2.6 »), or even major.minor-32.
Si aucun qualificateur de version mineure n’est trouvé, la variable d’environnement PY_PYTHON{major}
(où {major}
est le qualificateur de version principale actuelle tel que déterminé ci-dessus) peut être définie pour spécifier la version complète. Si aucune option de ce type n’est trouvée, le lanceur énumérera les versions de Python installées et utilisera la dernière version mineure trouvée pour la version principale, qui est probablement la plus récemment installée dans cette famille.
On 64-bit Windows with both 32-bit and 64-bit implementations of the same (major.minor) Python version installed, the 64-bit version will always be preferred. This will be true for both 32-bit and 64-bit implementations of the launcher - a 32-bit launcher will prefer to execute a 64-bit Python installation of the specified version if available. This is so the behavior of the launcher can be predicted knowing only what versions are installed on the PC and without regard to the order in which they were installed (i.e., without knowing whether a 32 or 64-bit version of Python and corresponding launcher was installed last). As noted above, an optional « -32 » suffix can be used on a version specifier to change this behaviour.
Exemples :
- Si aucune option pertinente n’est définie, les commandes
python
etpython2
utiliseront la dernière version de Python 2.x installée et la commandepython3
utilisera le dernier Python 3.x installé. - Les commandes
python3.1
etpython2.7
ne consultent aucune option du tout car les versions sont entièrement spécifiées. - Si
PY_PYTHON=3
, les commandespython
etpython3
utiliseront la dernière version de Python 3 installée. - Si
PY_PYTHON=3.1-32
, la commandepython
utilisera l’implémentation 32-bits de 3.1 alors que la commandepython3
utilisera le dernier Python installé (PY_PYTHON n’a pas été considéré du tout comme une version majeure a été spécifiée.) - Si
PY_PYTHON=3
etPY_PYTHON3=3.1
, les commandespython
etpython3
utiliseront spécifiquement 3.1
En plus des variables d’environnement, les mêmes paramètres peuvent être configurés dans le .INI
utilisé par le lanceur. La section dans le fichier INI est appelée [defaults]
et le nom de la clé sera le même que les variables d’environnement sans le préfixe PY_
principal (et notez que les noms de clés dans le fichier INI sont insensibles à la case.) Le contenu d’une variable d’environnement remplacera les éléments spécifiés dans le fichier INI.
Par exemple :
- Le paramètre
PY_PYTHON=3.1
équivaut au fichier INI contenant :
[defaults]
python=3.1
- Le paramètre
PY_PYTHON=3
etPY_PYTHON3=3.1
équivaut au fichier INI contenant :
[defaults]
python=3
python3=3.1
3.4.5. Diagnostics¶
Si une variable d’environnement PYLAUNCH_DEBUG
est définie (à n’importe quelle valeur), le lanceur affichera des informations de diagnostic sur stderr (c’est-à-dire sur la console). Bien que ces informations parviennent à être en même temps nombreuses et concises, elles devraient vous permettre de voir quelles versions de Python ont été trouvées, pourquoi une version particulière a été choisie et la ligne de commande exacte utilisée pour exécuter le Python cible.
3.5. 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.).
Si un fichier pyvenv.cfg
se trouve à côté de l’exécutable principal ou dans le répertoire un niveau au-dessus de l’exécutable, les variantes suivantes s’appliquent :
- Si
home
est un chemin absolu etPYTHONHOME
n’est pas défini, ce chemin d’accès est utilisé au lieu du chemin d’accès à l’exécutable principal lors de la déduction de l’emplacement du home. - If
applocal
is set to true, thehome
property or the main executable is always used as the home path, and all environment variables or registry values affecting the path are ignored. The landmark file is not checked.
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. - Si Python ne peut pas trouver son « home » et il n’y a pas de valeur de registre (.exe gelé, une installation très étrange) vous obtenez un chemin d’accès avec certains chemins par défaut, mais relatif.
Pour ceux qui veulent intégrer Python dans leur application ou leur distribution, les conseils suivants empêcheront les conflits avec d’autres installations :
- Include a
pyvenv.cfg
file alongside your executable containingapplocal = true
. This will ensure that your own directory will be used to resolve paths even if you have included the standard library in a ZIP file. It will also ignore user site-packages and other paths listed in the registry. - If you are loading
python3.dll
orpython35.dll
in your own executable, explicitly callPy_SetPath()
or (at least)Py_SetProgramName()
beforePy_Initialize()
. - Effacer et/ou écraser
PYTHONPATH
et configurezPYTHONHOME
avant de lancer lepython.exe
de votre application. - If you cannot use the previous suggestions (for example, you are a
distribution that allows people to run
python.exe
directly), ensure that the landmark file (Lib\os.py
) exists in your install directory. (Note that it will not be detected inside a ZIP file.)
These will ensure that the files in a system-wide installation will not take precedence over the copy of the standard library bundled with your application. Otherwise, your users may experience problems using your application. Note that the first suggestion is the best, as the other may still be susceptible to non-standard paths in the registry and user site-packages.
3.6. 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.6.1. PyWin32¶
Le module PyWin32 de Mark Hammond est une collection de modules pour un support avancé spécifique à Windows. Cela inclut les services pour :
- 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.6.2. cx_Freeze¶
cx_Freeze 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.6.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.7. 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.
L’arborescence source contient une solution de compilation et des fichiers projet pour Microsoft Visual Studio 2015, qui est le compilateur utilisé pour générer les versions officielles de Python. Ces fichiers se trouvent dans le répertoire PCbuild
.
Consultez 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.8. Embedded Distribution¶
Nouveau dans la version 3.5.
La distribution embarquée est un fichier ZIP contenant un environnement Python minimal. Il est destiné à agir dans le cadre d’une autre application, plutôt que d’être directement accessible par les utilisateurs finaux.
When extracted, the embedded distribution is (almost) fully isolated from the
user’s system, including environment variables, system registry settings, and
installed packages. The standard library is included as pre-compiled and
optimized .pyc
files in a ZIP, and python3.dll
, python35.dll
,
python.exe
and pythonw.exe
are all provided. Tcl/tk (including all
dependants, such as Idle), pip and the Python documentation are not included.
Note
La distribution intégrée n’inclut pas le Microsoft C Runtime et il est de la responsabilité de l’installateur d’application de le fournir. Le runtime peut avoir déjà été installé sur le système d’un utilisateur précédemment ou automatiquement via Windows Update, et peut être détecté en trouvant ucrtbase.dll
dans le répertoire système.
Les paquets tiers doivent être installés par le programme d’installation de l’application parallèlement à la distribution embarquée. L’utilisation de pip pour gérer les dépendances comme pour une installation Python régulière n’est pas prise en charge avec cette distribution, mais il reste possible d’inclure et d’utiliser pip pour les mises à jour automatiques. En général, les paquets tiers doivent être traités dans le cadre de l’application (vendoring) afin que le développeur puisse assurer la compatibilité avec les versions plus récentes avant de fournir des mises à jour aux utilisateurs.
Les deux cas d’utilisation recommandés pour cette distribution sont décrits ci-dessous.
3.8.1. Application Python¶
Une application écrite en Python n’exige pas nécessairement que les utilisateurs soient au courant de ce fait. La distribution embarquée peut être utilisée dans ce cas pour inclure une version privée de Python dans un package d’installation. Selon la façon dont il devrait être transparent (ou inversement, à quel point il doit paraître professionnel), il y a deux options.
L’utilisation d’un exécutable spécialisé en tant que lanceur nécessite de la programmation, mais fournit l’expérience la plus transparente pour les utilisateurs. Avec un lanceur personnalisé, il n’y a pas d’indications évidentes que le programme s’exécute sur Python : les icônes peuvent être personnalisées, les informations de la société et de la version peuvent être spécifiées, et les associations de fichiers se comportent correctement. Dans la plupart des cas, un lanceur personnalisé devrait simplement pouvoir appeler Py_Main
avec une ligne de commande codée en dur.
L’approche la plus simple consiste à fournir un fichier batch ou un raccourci généré qui appelle directement le python.exe
ou pythonw.exe
avec les arguments de ligne de commande requis. Dans ce cas, l’application semble être Python et non son nom réel, et les utilisateurs peuvent avoir du mal à le distinguer des autres processus Python en cours d’exécution ou des associations de fichiers.
Avec cette dernière approche, les packages doivent être installés en tant que répertoires à côté de l’exécutable Python pour s’assurer qu’ils soient visibles par Python. Avec le lanceur spécialisé, les paquets peuvent être installés dans d’autres emplacements car il y a une possibilité de spécifier le chemin de recherche avant de lancer l’application.
3.8.2. Embarquer Python¶
Les applications écrites en code natif nécessitent souvent une certaine forme de langage de scripting, et la distribution Python intégrée peut être utilisée à cette fin. En général, la majorité de l’application est dans le code natif, qui soit invoque python.exe
soit utilise directement python3.dll
. Dans les deux cas, l’extraction de la distribution intégrée dans un sous-répertoire de l’installation de l’application est suffisante pour fournir un interpréteur Python chargeable.
Comme pour l’utilisation de l’application, les paquets peuvent être installés sur n’importe quel emplacement, car il est possible de spécifier des chemins de recherche avant d’initialiser l’interpréteur. Sinon, il n’y a pas de différences fondamentales entre l’utilisation de la distribution embarquée et une installation classique.
3.9. 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
- PEP 397 - Python launcher for Windows
- The proposal for the launcher to be included in the Python distribution.