Créer Python3 pour Windows 10 sur ARM avec Visual Studio 2019 (x86) sur Windows 10 sur ARM

introduction

"Création de 7-zip (19.00) pour Windows 10 sur ARM avec Visual Studio 2019 (x86) sur Windows 10 sur ARM Cette fois, j'ai essayé de construire Python3.

Je n'ai pas beaucoup d'expérience avec Python moi-même, mais je l'ai vu parfois utilisé comme script d'aide à la construction OSS, donc j'ai pensé qu'il serait utile de le rendre natif [ici]. ](Https://bugs.python.org/issue33125) J'ai vu un échange qui semblait être quelque chose que je pouvais faire, alors j'ai décidé de relever le défi.

Construire Python3

Pour le moment, nous utiliserons cette fois la série 3.8, qui est la Stable actuelle. Bien qu'il existe des restrictions ridicules (décrites plus loin), j'ai pu construire rapidement avec le groupe de commande suivant.

git clone https://github.com/python/cpython -b 3.8
cd .\cpython\PCbuild
build.bat -p ARM64 -c Release

python_01.png

Contrainte

Il semble que NuGet installe divers modules externes sous . \ Cpython \ externals lors de la construction de Python, mais certains modules externes ne sont pas inclus pour ARM64 et la construction est ignorée.

Parmi eux, je pensais que ce serait un peu solitaire que tkinter (TclTk), qui est un module d'interface graphique Python standard, ne puisse pas être utilisé, alors j'ai essayé de construire TclTk.

Construire tkinter (TclTk)

TclTk installé par NuGet au moment de cette build Python était la version 8.6.9, mais je pense que la build est un peu plus facile à passer [ici](https://www.tcl.tk/software/tcltk/ Téléchargez tcl8610-src.zip et tk8610-src.zip à partir du site download.html) et extrayez-les vers votre lieu de travail.

Modification du contenu du fichier

  1. Il semble que le script ne le supporte pas, j'ai donc spécifié ARM64 de force cette fois. Rules.vc dans. \ Tcl8.6.10 \ win Réglez ARM64 sur le paramètre MACHINE sur la ligne 473 MACHINE=$(ARCH)MACHINE=ARM64

  2. De plus, la fonction cpuid ressemble à un assembleur, je l'ai donc omise de force cette fois. tclWin32Dll.c dans. \ Tcl8.6.10 \ win Commenter la ligne 820 __cpuid(regsPtr, index);/*__cpuid(regsPtr, index);*/

Construire TclTk

S'il est développé normalement, lancez une fenêtre de commande aux emplacements des dossiers . \ Tcl8.6.10 \ win et. \ Tk8.6.10 \ win, respectivement.

Préparez l'environnement du jeu d'outils pour ARM64 comme d'habitude

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_arm64

Maintenant, commencez à construire!

Cependant, pour une raison quelconque, lors de la construction sur Windows 10 sur ARM, je me fâche que "TCLSH_NATIVE n'est pas défini", donc pour le moment, j'ai spécifié la version x86 de TclTk installée par NuGet lors de la construction de python. ..

nmake -f makefile.vc release OPTS=threads TCLSH_NATIVE="work\cpython\externals\tcltk-8.6.9.0\win32\bin\tclsh86t.exe"

Fondamentalement, la construction a passé avec la commande ci-dessus, mais lors de la compilation du module sqlite de la construction côté Tcl, il y a eu un saut en raison d'une erreur liée au compilateur de ressources comme indiqué ci-dessous.

.\tcl8.6.10\pkgs\sqlite3.30.1.2\win\Release_ARM64_VC1926\sqlite_ThreadedDynamic\sqlite.rc(4) : error RC2167 : unrecognized VERSIONINFO field;  BEGIN or comma expected
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\rc.EXE"' :Code de retour'0x2'
Stop.

Je pensais que cela n'affecterait pas tkinter, alors j'ai traversé cette période. ^^; À l'avenir, j'étudierai la gestion du compilateur de ressources lors de la construction pour ARM64, même si j'en ai envie.

Installez TclTk

Pour le moment, je me fiche de la différence entre les numéros de version et je suis coincé dans le dossier arm64 de TclTk, qui a été installé avec NuGet lors de la construction de Python.

nmake -f makefile.vc install INSTALLDIR="work\cpython\externals\tcltk-8.6.9.0\arm64" TCLSH_NATIVE="work\cpython\externals\tcltk-8.6.9.0\win32\bin\tclsh86t.exe"

Construire tkinter (Reconstruire Python)

Maintenant que TclTk est prêt, je vais construire tkinter (reconstruire Python), mais je n'étais pas sûr qu'il se reconfigurerait bien, donc cette fois c'est dans . \ Cpython \ PCbuild. J'ai lancé l'IDE de Visual Studio à partir de pcbuild.sln` et l'ai reconstruit en ajoutant tkinter dans "Build Configuration" ici.

python_02.png

Je n'ai pas vérifié l'opération en détail, mais pour le moment, j'ai réussi à arriver au point où la fenêtre GUI de tkinter a été lancée.

python_03.png

en conclusion

N'est-ce pas là le goût unique d'une machine mineure dont l'environnement s'enrichit progressivement en se débattant? Cependant, nous espérons que la version officielle ARM64 sera distribuée dès que possible afin de gagner du terrain pour son utilisation généralisée.

Recommended Posts

Créer Python3 pour Windows 10 sur ARM avec Visual Studio 2019 (x86) sur Windows 10 sur ARM
Créer un environnement de développement Python avec Visual Studio Code
Créer un environnement Python sur Windows
Construire un environnement Python avec Windows
Construire l'extension Python E-Cell 4 sur Windows 7 (64 bits)
Essayez de déboguer Python sur Raspberry Pi avec Visual Studio.
PIL en Python sur Windows8 (pour Google App Engine)
Environnement de développement Python avec Windows + Anaconda3 + Visual Studio Code
Environnement de développement Python avec Windows + Python + PipEnv + Visual Studio Code
Créer un environnement pour exécuter des fonctions C ++ à partir de Python avec Pybind11 (pour les utilisateurs de Windows et Visual Studio Code)
Construire mlpy avec python3.3 (64 bits) (Windows 64 bits)
Installer python et Visual Studio Code sur Windows10 (version d'avril 2020)
Premiers pas avec Python 3.8 sous Windows
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
Exécutez le servo avec Python sur ESP32 (Windows)
Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows
Utiliser sans installer python 2.x sous Windows
Créer un environnement Python avec Anaconda sur Mac
Guide d'installation des outils Python pour Visual Studio
Installation de PIL avec Python 3.x sur macOS
Exécutez Python en C ++ sur Visual Studio 2017
Python sur Windows
Créez un environnement de développement Python sur Windows (WSL distant Visual Studio Code).
Mettre la liaison MeCab pour Python sur Windows, Mac et Linux avec pip
Janken Poi avec Python Exécutons sur un serveur local Windows pour les débutants
Créer un environnement python avec pyenv sur EC2 (ubuntu)
(Windows) Causes et solutions de contournement pour UnicodeEncodeError dans Python 3
Créez un environnement python avec ansible sur centos6
Exécutez Python YOLOv3 en C ++ sur Visual Studio 2017
Automatisation de l'interface graphique avec le pilote d'application Python x Windows
Installez OpenCV 4.0 et Python 3.7 sur Windows 10 avec Anaconda
Traitement d'image avec la configuration de l'environnement Python pour Windows
Mettez Python 2.7.x dans pyenv sur Mac OSX 10.15.5
Paramètres de codage Python avec Visual Studio Code
Installation de TensorFlow sur Windows Easy pour les débutants en Python
[Visual Studio Code] [Python] Paramètres Tasks.json + problemMatcher pour Python
Étapes pour créer PyTorch 1.5 pour CUDA 10.2 sous Windows
Je l'ai personnalisé avec Visual Studio Code (principalement pour python), je vais donc le résumer
Créez un environnement de développement local avec WSL + Docker Desktop pour Windows + docker-lambda + Python
Python à partir de Windows 7
python basic ② sous windows
Installez python sur Windows
Construire TensorFlow sous Windows
Construisez XGBoost sur Windows
construire Python sur Ubuntu
Installez Python (pour Windows)
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Le problème que Windows python est appelé dans pipenv sur WSL
[Heroku] Mémo pour le déploiement d'applications Python à l'aide d'Heroku sous Windows [Python]
Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Informations pour contrôler les moteurs avec Python sur RaspberryPi
Créer un environnement de développement Python sur Mac OS X
Faire en sorte que Visual Studio Code complète automatiquement la bibliothèque externe de Python
Procédure de création d'un environnement CDK sous Windows (Python)
Sortie japonaise lors de l'utilisation de python dans Visual Studio
Développement du kit SDK AWS pour Python (Boto3) dans Visual Studio 2017