Build-Umgebung für Python 2.7, 3.4, 3.5-Erweiterungsmodule unter Windows

Hier finden Sie eine Zusammenfassung einiger Grundkenntnisse und nützlicher Informationen, die Sie beim Erstellen eines Python-Binärpakets für Windows kennen sollten.

Über die Bedeutung von Binärpaketen unter Windows

Es ist sehr unwahrscheinlich, dass Benutzer von Python unter Windows über eine Umgebung zum Erstellen von Python-Erweiterungen verfügen. Ursprünglich haben weniger Benutzer den Compiler installiert als Mac, und in der Mac-Version ist der Compiler für jede Betriebssystemversion festgelegt, während in Windows die Version des Compilers durch die Version von Python anstelle des Betriebssystems bestimmt wird. Aus irgendeinem Grund ist es fast Null, dass jemand anders als jemand, der die Python-Entwicklungsumgebung erforscht und vorbereitet hat, den entsprechenden Compiler eingerichtet hat.

Andererseits ist in Windows die von python.org bereitgestellte offizielle Binärdatei zu einem starken Standard geworden, und die von Dritten vertriebene Python-Umgebung ist ebenfalls nahezu binärkompatibel, sodass Benutzer das Binärpaket selbst verteilen können. Sie können Python-Erweiterungsmodule verwenden, ohne sie zu erstellen. Die Tatsache, dass die Compilerversion nicht an das Betriebssystem gebunden ist, ist auch für den Binärpaketanbieter von Vorteil, da nicht mehrere Betriebssystemversionen vorbereitet werden müssen.

Daher wird empfohlen, dass der Anbieter des Pakets, das das Erweiterungsmodul enthält, nach Möglichkeit ein Binärpaket für Windows vorbereitet.

Selbst wenn Sie heutzutage keine umfangreichen Tools wie Windows SDK oder Visual Studio unter Windows installieren möchten, können Sie EC2, Azure, GCP usw. verwenden, um stündlich eine Windows-Umgebung mit einer stärkeren CPU wie Atom zu verwenden. Ich werde.

Informationen zum Installieren mehrerer Versionen von Python und des Befehls py

Das Standardinstallationsverzeichnis ist C: \\ Python34 für Python 3.4. Sie können es ändern, aber Verzeichnisse mit Leerzeichen vermeiden, um Probleme zu vermeiden.

Wenn Sie sowohl die 64-Bit-Version als auch die 32-Bit-Version installieren, ist das Standardinstallationsziel dasselbe. Ändern Sie daher eines in "C: \ Python34_amd64". Es ist etwas leichter, wenn Sie IDLE, TK, Tests, Dokumentation usw. in den Installationsoptionen entfernen.

Wenn Sie Python 3.3 oder höher installieren, wird ein Python-Launcher namens "py" installiert. Dieser Launcher startet die 64-Bit-Version von Python 3.4 mit py -3.4 und die 32-Bit-Version von Python 2.7 mit py -2.7-32. Dies ist nützlich, da Sie nicht mehrmals lange vollständige Pfade eingeben oder die PATH-Einstellungen von Build zu Build ändern müssen. Nicht nur, wenn Sie "setup.py" ausführen, sondern auch, wenn Sie den Befehl "pip" ausführen, können Sie ihn wie "py -2.7-32 -m pip" mit der Option "-m" ausführen.

Über Rad

Python kann standardmäßig Binärpakete im Installationsformat (exe oder msi) erstellen. Pakete dieses Formulars können jedoch nicht in virtualenv installiert oder installiert werden. (Wenn Sie sich das ansehen, ist es eine gute Verteilungsmethode für Benutzer, die mit Windows vertraut sind.)

Das derzeit empfohlene Binärpaket für die Pip-Installation ist Rad.

Um ein Rad zu bauen, verwenden Sie pip install -U Wheel Setuptools, um die neueste Version von Wheel und Setuptools zu erhalten, und verwenden Sie dann den Befehl python setup.py bdist_wheel.

Obwohl Wheel ein Binärpaket ist, hat es, selbst wenn Sie eine reine Python-Bibliothek verteilen, Vorteile wie eine schnellere Installation als ".tar.gz". Lassen Sie es uns also aktiv nutzen.

Über MSVCRT

Wenn Sie ein in C oder C ++ geschriebenes Programm ausführen, benötigen Sie eine Bibliothek namens Runtime Library. Diese Bibliothek enthält Standardbibliotheksfunktionen wie fopen und malloc.

Die vom Visual C ++ - Compiler verwendete Laufzeitbibliothek ist MSVCRT. Es wird für jede Compilerversion bereitgestellt. Bitte beachten Sie, dass die VC-Version nicht mit der VS-Version (Jahr) übereinstimmt.

Es ist möglich, dass ein Prozess mehrere Versionen von MSVCRT gleichzeitig verwendet, es ist jedoch sicherer, sie nach Möglichkeit zu vereinheitlichen. Daher sollten Sie beim Erstellen einer Python-Erweiterung die VC verwenden, mit der die offizielle Version von Python für Windows erstellt wurde.

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

Python 2.7

Die VC für Python 2.7 ist fünf Jahre alt, daher war die Vorbereitung jetzt mühsam.

Glücklicherweise hat Microsoft dieses Jahr [Microsoft Visual C ++ - Compiler für Python 2.7] angekündigt (http://www.microsoft.com/en-us/download/details.aspx?id=44266). Installieren Sie es jetzt einfach und Sie erhalten eine Build-Umgebung für die Python 2.7-Erweiterung.

Beim Erstellen wird es in der Registrierung durchsucht und verwendet, ohne sich um Umgebungsvariablen kümmern zu müssen. Führen Sie den Befehl daher einfach an der Eingabeaufforderung aus. Im folgenden Beispiel wird für jede der 32-Bit- und 64-Bit-Versionen ein Rad erstellt. Das erstellte Rad befindet sich im Verzeichnis "dists /" und kann "pip install" sein.

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

Python 3.4

Es gibt die Express Edition von Visual Studio und die kürzlich veröffentlichte Community Edition, um VC kostenlos zu erhalten.

Leider sind in der Community Edition 11 VCs verfügbar, sodass Sie auf Python 3.5 warten müssen. Es wird immer schwieriger, einen Weg zu finden, um Visual Studio 2010 Express Edition zu erhalten. Selbst wenn Sie es leicht durchgehen, gibt es nur 2012 Websites an der Spitze. Darüber hinaus hat VS 2010 Express Edition die Einschränkung, dass der 64-Bit-Compiler nicht verwendet werden kann. Dies macht es unmöglich, eine 64-Bit-Version des Python-Binärpakets vorzubereiten.

Installieren Sie daher Windows SDK 7.1 anstelle von Visual Studio. Sie können auswählen, welche Teile während der Installation installiert werden sollen. Wählen Sie daher nur die C ++ - Compiler x86 und amd64 aus.

Bei Verwendung des Windows SDK erkennt Python im Gegensatz zu Visual Studio den Compiler in der Registrierung nicht automatisch. Daher müssen Sie Umgebungsvariablen festlegen. Wenn Sie das SDK installieren, wird im Startmenü eine Eingabeaufforderungsverknüpfung mit dem Namen "Windows SDK 7.1-Eingabeaufforderung" erstellt. Kopieren Sie diese und bereiten Sie eine Verknüpfung für die Erstellung der Python-Erweiterung vor. Stellen Sie das "Link-Ziel" der Verknüpfung wie folgt ein und geben Sie den Arbeitsordner als Ihren Arbeitsordner an.

Linkziel (Wenn Sie das Installationsziel von Windows SDK ändern, schreiben Sie diesen Teil neu):

> #32bit Version
> 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
> #64bit Version
> 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

Jetzt müssen Sie nur noch von jeder Verknüpfung aus starten und den Befehl wie in 2.7 ausführen.

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

Python 3.5

Sie können Visual Studio Community Edition verwenden. Wie bei Python 2.7 können Sie problemlos Erweiterungen erstellen.

Außerdem [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-environment.aspx) wurde in der Beta angekündigt. Es ist nicht verifiziert, aber Sie werden wahrscheinlich den Compiler und andere Tools erhalten, die Sie benötigen, ohne das schwergewichtige Visual Studio wie Python 2.7 installieren zu müssen.

Funktionsprüfung und Upload

Installieren und testen Sie das resultierende Rad mit "pip install", bevor Sie es auf PyPI hochladen. Eine andere Möglichkeit zum Hochladen auf PyPI ist die Verwendung von setup.py, wie z. B. "py -3.4-32 setup.py bdist_wheel upload". Sie müssen das Rad jedoch nach dem Testen neu erstellen.

Laut dem Pytohn Packaging User Guide lautet die derzeit empfohlene Methode zum Hochladen von Paketen [twine](https: //pypi.python). org / pypi / twine). Sie müssen nur Twine auf einem Python installieren und können Pakete für alle Pythons hochladen.

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

Zusammenfassung

Recommended Posts

Build-Umgebung für Python 2.7, 3.4, 3.5-Erweiterungsmodule unter Windows
Erstellen Sie eine Python-Umgebung unter Windows
Erstellen Sie eine Python-Umgebung mit Windows
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Erstellen Sie die Python-Erweiterung E-Cell 4 unter Windows 7 (64 Bit).
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Python-Umgebungskonstruktionsnotiz unter Windows 10
Aufbau einer Anaconda-Python-Umgebung unter Windows 10
Python2.7-Installation in einer Windows 32-Bit-Umgebung
Installieren Sie die Python-Entwicklungsumgebung unter Windows 10
Erstellen Sie die Python 3.8 + Pipenv-Umgebung unter Ubuntu 18.04
Erstellen Sie eine Python3-Umgebung unter CentOS7
Python unter Windows
Python Windows-Umgebung
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (2) Grundeinstellungen
Erstellen Sie Python 3 und OpenCV unter Ubuntu 18.04
Erstellen Sie eine Python-Umgebung unter MacOS (Catallina)
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Erstellen Sie eine Python + OpenCV-Umgebung in Cloud9
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
Python Basic ② in Windows
Installieren Sie Python unter Windows
Erstellen Sie TensorFlow unter Windows
Erstellen Sie XGBoost unter Windows
Build Python auf Ubuntu
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Erstellen Sie die Python3.5 + matplotlib-Umgebung unter Ubuntu 12 mit Anaconda
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Erstellen Sie eine Python-Umgebung auf einem Mac (Mountain Lion)
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie eine Python3 + -Kolbenumgebung auf der Compute Engine von GCP
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Führen Sie Openpose unter Python (Windows) aus.
Installieren Sie Watchdog unter Windows + Python 3.3
# 2 Erstellen Sie eine Python-Umgebung mit einer EC2-Instanz von AWS (ubuntu18.04).
Erstellen Sie eine Python-Umgebung für maschinelles Lernen unter Mac OS
Python + Kivy-Entwicklung unter Windows
Bereiten Sie die Chainer-Umgebung unter Windows vor
Aufbau einer Python-Umgebung (Windows 10 + Emacs)
Erstellen Sie eine komfortable Python 3 (Anaconda) -Entwicklungsumgebung mit Windows
Sphinx-Autobuild (0.5.2) unter Windows7, Python 3.5.1, Sphinx 1.3.5
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
Schnellste Python-Installation unter Windows
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Erstellen Sie mit direnv eine Python-Umgebung
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Entwicklung der Django-Umgebung unter Windows 10
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
[ev3dev × Python] Aufbau einer ev3dev-Entwicklungsumgebung
Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python)
Erstellen einer Python-Umgebung unter Windows 7
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Erstellen Sie die Python-Umgebung offline
Ich habe Python unter Windows ausgeführt
[Tensorflow] Aufbau der Tensorflow-Umgebung unter Windows 10
Erstellen Sie unter Windows eine anständige Shell- und Python-Umgebung
[Python] [Chainer] [Windows] Chainer unter Windows installieren
Verwenden Sie Python unter Windows (PyCharm)