Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows

Voici un résumé de certaines connaissances de base et des informations utiles que vous devez connaître lors de la création d'un package binaire Python pour Windows.

À propos de l'importance des packages binaires sous Windows

Il est très peu probable que les utilisateurs de Python sous Windows disposent d'un environnement pour créer des extensions Python. À l'origine, il y a moins d'utilisateurs qui ont installé le compilateur que Mac, et dans la version Mac, le compilateur est fixé pour chaque version du système d'exploitation, alors que sous Windows, la version du compilateur est déterminée par la version de Python au lieu du système d'exploitation. Pour une raison quelconque, il est presque nul qu'une personne autre que quelqu'un qui a recherché et préparé l'environnement de développement Python ait mis en place le compilateur approprié.

D'autre part, dans Windows, le binaire officiel fourni par python.org est devenu un standard fort, et l'environnement Python distribué par des tiers est également presque compatible binaire, de sorte que les utilisateurs peuvent distribuer le paquet binaire par eux-mêmes. Vous pouvez utiliser les modules d'extension Python sans construire. Le fait que la version du compilateur ne soit pas liée au système d'exploitation est également un avantage pour le fournisseur de packages binaires, car il n'est pas nécessaire de préparer plusieurs versions du système d'exploitation.

Par conséquent, il est recommandé que le fournisseur du package contenant le module d'extension prépare un package binaire pour Windows si possible.

De nos jours, même si vous ne souhaitez pas installer d'outils lourds comme le SDK Windows ou Visual Studio sur votre Windows, vous pouvez utiliser EC2, Azure, GCP, etc. pour utiliser un environnement Windows avec un processeur plus puissant tel qu'Atom sur une base horaire. Je vais.

À propos de l'installation de plusieurs versions de Python et de la commande py

Le répertoire d'installation standard est C: \\ Python34 pour Python 3.4. Vous pouvez le modifier, mais évitez les répertoires contenant des espaces pour éviter les problèmes.

Si vous installez à la fois la version 64 bits et la version 32 bits, la destination d'installation par défaut est la même, changez-en une en C: \\ Python34_amd64. Ce sera un peu plus léger si vous supprimez IDLE, TK, tests, documentation, etc. dans les options d'installation.

Lorsque vous installez Python 3.3 ou version ultérieure, un lanceur Python appelé py est installé. Ce lanceur lance la version 64 bits de Python 3.4 avec py -3.4 et la version 32 bits de Python 2.7 avec py -2.7-32. Ceci est utile car vous n'avez pas à entrer plusieurs fois de longs chemins complets ou à changer les paramètres PATH d'une génération à l'autre. Non seulement lorsque vous exécutez setup.py, mais aussi lorsque vous exécutez la commande pip, vous pouvez l'exécuter comme py -2.7-32 -m pip avec l'option -m.

À propos de Wheel

Python peut créer des packages binaires au format installeur (exe ou msi) par défaut. Cependant, les packages de cette forme ne peuvent pas être installés ou installés par pip dans virtualenv. (Si vous regardez cela, c'est une bonne méthode de distribution pour les utilisateurs familiers avec Windows.)

Le paquet binaire actuellement recommandé pour l'installation de pip est wheel.

Pour construire une roue, utilisez pip install -U wheel setuptools pour obtenir la dernière version de wheel et setuptools, puis utilisez la commande python setup.py bdist_wheel.

Bien que wheel soit un paquet binaire, même si vous distribuez une bibliothèque Python pure, il présente des avantages tels qu'une installation plus rapide que .tar.gz, alors utilisons-le activement.

À propos de MSVCRT

Lorsque vous exécutez un programme écrit en C ou C ++, vous avez besoin d'une bibliothèque appelée sa bibliothèque d'exécution. Cette bibliothèque contient des fonctions de bibliothèque standard telles que fopen et malloc.

La bibliothèque d'exécution utilisée par le compilateur Visual C ++ est MSVCRT. Il est fourni pour chaque version du compilateur. Veuillez noter que la version VC ne correspond pas à la version VS (année).

Il est possible pour un processus d'utiliser plusieurs versions de MSVCRT en même temps, mais il est plus sûr de les unifier si possible. Par conséquent, lors de la création d'une extension Python, vous devez utiliser le VC qui a été utilisé pour créer la version officielle de Python pour Windows.

Version VS Version VC Python
2008 9 2.7
2010 10 3.4
2012 11
2013 12
2015 14 3.5

Python 2.7

Le VC pour Python 2.7 a cinq ans, il était donc difficile de se préparer maintenant.

Heureusement, cette année, Microsoft a annoncé Compilateur Microsoft Visual C ++ pour Python 2.7. Maintenant, installez-le et vous aurez un environnement de construction pour l'extension Python 2.7.

Lors de la construction, il sera recherché dans le registre et utilisé sans se soucier des variables d'environnement, alors exécutez simplement la commande à partir de l'invite de commande normalement. Dans l'exemple suivant, une roue est créée pour chacune des versions 32 bits et 64 bits. La roue créée se trouve dans le répertoire dists / et peut être pip install.

> py -2.7-32  setup.py bdist_wheel
> py -2.7-x64 setup.py bdist_wheel

Python 3.4

Il existe Express Edition de Visual Studio et la version récente de Community Edition pour obtenir gratuitement VC.

Malheureusement, 11 VC sont disponibles dans l'édition communautaire, vous devrez donc attendre Python 3.5. Il est de plus en plus difficile de trouver un moyen d'obtenir Visual Studio 2010 Express Edition. Même si vous le parcourez à la légère, il n'y a que 2012 sites au sommet. En outre, VS 2010 Express Edition a une limitation selon laquelle le compilateur 64 bits ne peut pas être utilisé. Cela rend impossible la préparation d'une version 64 bits du package binaire Python.

Par conséquent, installez Windows SDK 7.1 au lieu de Visual Studio. Vous pouvez choisir les composants à installer lors de l'installation, choisissez donc uniquement les compilateurs C ++ x86 et amd64.

Lorsque vous utilisez le SDK Windows, contrairement à Visual Studio, Python ne détecte pas automatiquement le compilateur à partir du registre, vous devez donc définir des variables d'environnement. Lorsque vous installez le SDK, un raccourci d'invite de commande appelé «Windows SDK 7.1 Command Prompt» sera créé dans le menu Démarrer, alors copiez-le et préparez un raccourci pour la construction de l'extension Python. Définissez la «destination du lien» du raccourci comme suit et spécifiez le dossier de travail comme dossier de travail.

Destination du lien (si vous modifiez la destination d'installation du SDK Windows, veuillez réécrire cette partie):

> #Version 32 bits
> C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /x86
> #Version 64 bits
> C:\Windows\System32\cmd.exe /E:ON /V:ON /T:0E /K "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /x64

Tout ce que vous avez à faire maintenant est de lancer à partir de chaque raccourci et d'exécuter la commande comme vous l'avez fait dans 2.7.

> #Version 32 bits
> py -3.4-32  setup.py bdist_wheel
> #Version 64 bits
> py -3.4-x64 setup.py bdist_wheel

Python 3.5

Vous pouvez utiliser Visual Studio Community Edition. Comme avec Python 2.7, vous pouvez créer des extensions sans aucun problème.

En outre, [Visual C ++ Build tools](http://blogs.msdn.com/b/vcblog/archive/2015/11/02/announcing-visual-c-build-tools-2015-standalone-c-tools-for -build-environnements.aspx) a été annoncé en version bêta. Ce n'est pas vérifié, mais vous obtiendrez probablement le compilateur et les autres outils dont vous avez besoin sans avoir à installer le lourd Visual Studio, tout comme Python 2.7.

Contrôle de fonctionnement et téléchargement

Installez et testez la roue résultante avec pip install avant de la télécharger sur PyPI. Vous pouvez également utiliser setup.py pour télécharger sur PyPI, comme py -3.4-32 setup.py bdist_wheel upload, mais vous devrez recréer la roue après le test.

Selon le Guide de l'utilisateur Pytohn Packaging, la méthode de téléchargement de package actuellement recommandée est [twine](https: //pypi.python. org / pypi / twine). Vous n'avez besoin d'installer de la ficelle que sur un Python et vous pouvez télécharger des packages pour tous les Pythons.

> py -3.4 -m pip install -U twine
> py -3.4 -m twine upload dist/yourpackage-1.2.3-*.whl

Résumé

Recommended Posts

Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows
Créer un environnement Python sur Windows
Construire un environnement Python avec Windows
Créez simplement un environnement d'exécution Python 3 sous Windows
Construire l'extension Python E-Cell 4 sur Windows 7 (64 bits)
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Mémo de construction de l'environnement Python sur Windows 10
Construction de l'environnement Anaconda Python sous Windows 10
installation de python2.7 dans un environnement Windows 32 bits
Installer l'environnement de développement Python sur Windows 10
Créer un environnement Python 3.8 + Pipenv sur Ubuntu 18.04
Créer un environnement python3 sur CentOS7
Python sur Windows
environnement windows python
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Construire un environnement python sur MacOS (Catallina)
Créer un environnement Python avec Anaconda sur Mac
Créer un environnement Python + OpenCV sur Cloud9
Créez un environnement Python 2.7 64 bits avec TDM-GCC et MinGW-w64 sous Windows 7
python basic ② sous windows
Installez python sur Windows
Construire TensorFlow sous Windows
Construisez XGBoost sur Windows
construire Python sur Ubuntu
Créer un environnement python avec pyenv sur EC2 (ubuntu)
Construire l'environnement Python3.5 + matplotlib sur Ubuntu 12 en utilisant Anaconda
Créez un environnement python avec ansible sur centos6
Créer un environnement Python sur Mac (Mountain Lion)
Créez un environnement de développement Python sur votre Mac
Créez un environnement Flask Python3 + sur Compute Engine de GCP
Construire un environnement de développement Python sur Raspberry Pi
Exécutez Openpose sur Python (Windows)
Installer watchdog sur Windows + Python 3.3
# 2 Créez un environnement Python avec une instance EC2 d'AWS (ubuntu18.04)
Créer un environnement Python d'apprentissage automatique sur Mac OS
Développement Python + Kivy sous Windows
Préparer l'environnement Chainer sous Windows
Construction de l'environnement Python (Windows10 + Emacs)
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Sphinx-autobuild (0.5.2) sous Windows7, Python 3.5.1, Sphinx 1.3.5
Créer un environnement python3 avec ubuntu 16.04
Installation de Python la plus rapide sous Windows
Comment créer un environnement Django (python) sur Docker
Construire un environnement python avec direnv
Créer un environnement de développement Python sur Mac OS X
Développement de l'environnement Django sur Windows 10
Créez un environnement Python sur votre Mac en utilisant pyenv
[ev3dev × Python] Construction de l'environnement de développement ev3dev
Procédure de création d'un environnement CDK sous Windows (Python)
Construire un environnement Python sous un environnement Windows 7
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Créer un environnement Python hors ligne
J'ai exécuté python sur Windows
[Tensorflow] Construction de l'environnement Tensorflow sous Windows 10
Créez un environnement shell et python décent sur Windows
[Python] [Chainer] [Windows] Installer Chainer sous Windows
Utiliser Python sur Windows (PyCharm)