Une évolution majeure des ordinateurs sous Windows a été lancé à la mi-juin 2024. Désormais, des processeurs à architecture ARM sont proposer en lieu et place des CPU x86-64. Il ne fait pas de doute que dans les lois à venir les solutions de développement seront parfaitement adaptées à la nouvelle architecture. En attendant, comment continuer à développer sur ce type de machine ? Il existe déjà quelques solutions pour nous aider.
Installation de Python
Python est disponible en version Arm64 sur la page https://www.python.org/downloads/windows/.
PS C:\Users\gilles> cd .\Downloads\ PS C:\Users\gilles\Downloads> curl https://www.python.org/ftp/python/3.12.4/python-3.12.4-arm64.exe -O python-3.12.4-arm64.exe PS C:\Users\gilles\Downloads> .\python-3.12.4-arm64.exe
Une fenêtre va apparaître. Nous cliquons sur la case à cocher python.exe to PATH
. Nous lançons l’installation en cliquant sur Install Now
. Notons que le chemin d’installation est précisé.

Même si nous avons installer Python, il se peux que dans le terminal nous soyons systématiquement redirigés vers Microsoft Store lorsque que nous tentons d’exécuter la commande python.exe
ou python3.exe
. La solution consiste à ouvrir les paramètres de Windows. Nous cliquons sur Alias d’exécution d’application dans les paramètres d’applications (Applications > Applications et fonctionnalités). Nous faisons défiler la page pour afficher et décocher les entrées pour « App Installer – python.exe » et « App Installer – python3.exe ».
Si nous avons omis de cliquer sur Add python.exe to PATH
, nous pouvons toujours ajouter le chemin dans les variables d’environnements.
Dans les paramètres, nous allons saisir dans la boîte de recherche le mot variables
et cliquez sur Modifier les variables d'environnement système
.

Une boîte de dialogue va s’afficher. Nous cliquons sur le bouton Variables d'environnement...

Dans les variables pour l’utilisateur en cours, nous cliquons sur la ligne Path
puis sur le bouton Modifier...

Nous ajoutons une nouvelle ligne en y intégrant le chemin où se situe l’installation de Python. Dans notre cas il s’agit de C:\Users\gille\AppData\Local\Programs\Python\Python312-arm64
.

Nous fermons tous les boites de dialogue, et nous pouvons essayer de lancer l’interpréteur Python.
Dans Powershell nous devons autoriser l’exécution de scripts avec cette ligne de commandes.
PS C:\Users\gille\OneDrive\Documents\Python> Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
Packages Arm64
Nous commençons par mettre en place un environnement virtuel. Nous l’activons ensuite et nous mettons à jour la commande pip
.
PS C:\Users\gilles\OneDrive\Documents\Python> python -m venv myenv PS C:\Users\gilles\OneDrive\Documents\Python> .\myenv\Scripts\Activate.ps1 (myenv) PS C:\Users\gilles\OneDrive\Documents\Python> python.exe -m pip install --upgrade pip
Nous créons un fichier Python que nous appellerons main.py
.
import platform print("Système : ", platform.uname().system, platform.uname().release, platform.uname().machine) print("Processeur : " , platform.uname().processor)
Nous essayons notre script de cette façon.
(.venv) PS C:\Users\gille\OneDrive\Documents\Python> python .\essai.py Système : Windows 11 ARM64 Processeur : ARMv8 (64-bit) Family 8 Model 1 Revision 201, Qualcomm Technologies Inc
Certaines bibliothèques Python utilisent du code natif. Des versions spécifiques à Windows Arm64 ne sont pas forcément disponibles au lancement des ordinateurs Copilot +. Pour contourner cette difficulté il existe sur Github un ensemble de packages au format wheel compilés en code Arm64. Nous pouvons télécharger directement l’archive à l’adresse https://github.com/cgohlke/win_arm64-wheels/releases et la décompresser.
Nous pouvons également le faire directement en ligne de commandes.
PS C:\Users\gille\Downloads> curl https://github.com/cgohlke/win_arm64-wheels/releases/download/v2024.6.15/2024.6.15-experimental-cp312-win_arm64.whl.zip -O wheels.zip PS C:\Users\gille\Downloads> Expand-Archive -Path .\wheels.zip -DestinationPath .\
A l’intérieur du répertoire nous trouverons un fichier wheel pour chaque package. Pour les installer dans l’environnement virtuel, il nous suffit d’utiliser la commande pip install <fichier wheel>
.
Certains packages imposent l’installation d’autres packages. Si tous les packages tiers sont en pure Python, nous n’aurons pas de soucis. Par contre avec des packages intégrants du code natif nous allons devoir pré-installer les packages tiers. C’est le cas par exemple de Pandas. Pour rendre son installation possible, nous devons d’abord installer Numpy.
(.venv) > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\numpy-2.0.0-cp312-cp312-win_arm64.whl" (.venv) > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\pandas-2.2.2-cp312-cp312-win_arm64.whl"
Jupyter Notebook
Pour utiliser la librairie Pandas, le mieux est d’installer Jupyter Notebook et JupyterLab. Là aussi nous allons devoir pré-installer un certain nombre de packages.
(.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\pywinpty-2.0.13-cp312-none-win_arm64.whl" (.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\cffi-1.16.0-cp312-cp312-win_arm64.whl" (.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\argon2_cffi_bindings-21.2.0-cp312-abi3-win_arm64.whl" (.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\rpds_py-0.18.1-cp312-none-win_arm64.whl" (.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\psutil-5.9.8-cp312-abi3-win_arm64.whl" (.venv) > pip install jupyter
Pour tester tout cela, nous exécutons la ligne de commandes qui suit :
(.venv) PS > jupyter notebook
Nous allons créer un classeur. Par exemple nous définissons un programme pour récupérer l’historique du taux de change entre l’euro et le dollar US.
En préalable nous devons installer le package yfinance
. Cette bibliothèque va nous permettre de récupérer les données du marché financier en utilisant Yahoo ! Finance (https://tysonvanalfen.com/python/packages/yfinance.html).
(.venv) PS > pip install yfinance --upgrade --no-cache-dir
Nous allons récupérer un historique des taux de change. Dans notre cas nous le ferons sur une année avec period="1y"
. L’historique est un objet dataframe
de Pandas. Pour rendre les choses plus claires, nous convertissons l’index au format date et heure. Cela va nous faciliter la manipulation des données.
import pandas as pd import yfinance as yf EUR2USD = yf.Ticker("EURUSD=X" ) df_euro_usd = EUR2USD.history(period="1y") df_euro_usd.index = pd.to_datetime(df_euro_usd.index) df_euro_usd.head()

Nous allons maintenant afficher cette évolution sous forme de graphique. Pour cela nous devons installer Matplotlib les packages suivants :
(.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\contourpy-1.2.1-cp312-cp312-win_arm64.whl" (.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\kiwisolver-1.4.5-cp312-cp312-win_arm64.whl" (.venv) PS > pip install "C:\Users\gille\Downloads\2024.6.15-experimental-cp312-win_arm64.whl\matplotlib-3.9.0-cp312-cp312-win_arm64.whl"
Nous allons maintenant dessiner une courbe de l’évolution du taux de change sur 1 an. Nous y ajouterons sous forme de ligne la moyenne. Nous utiliserons les taux de change en clôture.
import matplotlib.pyplot as plt plt.style.use('ggplot') %matplotlib inline # Création du graphisme plt.figure(figsize=(15, 7)) # Ajout de l'évolution du taux de change df_euro_usd['Close'].plot() # Ajoute une ligne pour la moyenne plt.axhline(y=np.nanmean(df_euro_usd['Close']), color='green') # Définition et paramétrage du titre et des axes plt.title('Evolution EUR/USD', fontsize=16) plt.xlabel('Année-Mois', fontsize=15) plt.ylabel('Taux de change', fontsize=15) plt.xticks(fontsize=15) plt.yticks(fontsize=15) # Affichage plt.show()

Utilisation d’un éditeur de code
Par défaut, Python est fourni avec l’éditeur de code Idle. Nous pouvons le lancer dans le menu Démarrer.

Une autre approche consiste à exécuter une ligne de commandes sous cette forme.
PS C:\Users\gilles> pythonw.exe "C:\Users\gilles\AppData\Local\Programs\Python\Python312-arm64\Lib\idlelib\idle.pyw"
Cette façon de procéder peut paraître un peu pénible à l’usage. Le mieux est d’utiliser un alias. Nous invoquerons l’instruction Set-Alias
pour définir un raccourci.
PS C:\Users\gilles> function myalias {pythonw.exe "C:\Users\gille\AppData\Local\Programs\Python\Python312-arm64\Lib\idlelib\idle.pyw"} PS C:\Users\gilles> Set-Alias -Name idle -Value myalias PS C:\Users\gilles> idle
Pour définir cet alias de manière permanente, nous pouvons éditer le fichier utiliser par Powershell lors de l’ouverture d’une nouvelle session. Ce fichier s’appelle Microsoft.PowerShell_profile.ps1
. Nous le trouverons en affichant le contenu de la variable d’environnement $PROFILE
. Nous obtiendrons un chemin vers un fichier de configuration pour l’utilisateur local.
PS C:\Users\gilles> $PROFILE C:\Users\gille\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Pour obtenir un chemin d’accès à un fichier de profile générale nous utiliserons :
PS C:\Users\gilles> $PROFILE.AllUsersAllHosts C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
Pour ajouter l’alias nous allons éditer le fichier.
PS C:\Users\gilles> notepad.exe $PROFILE
A l’intérieur du fichier, nous ajoutons les lignes suivantes et nous le sauvons.
function myalias { pythonw.exe "C:\Users\gilles\AppData\Local\Programs\Python\Python312-arm64\Lib\idlelib\idle.pyw" } Set-Alias -Name idle -Value myalias
Pour que le profile soit actif, nous démarrons une nouvelle session de Powershell. Nous tapons idle
pour lancer l’éditeur.
A juillet 2024 nous avons également à notre disposition deux éditeurs de code proposés en version native ARM64 : Jetbrains PyCharm Community Edition et Visual Studio Code.
A noter que Visual Studio 2022 existe en version ARM64. Le python n’est pour l’instant pas pris en charge.