[PYTHON] Einführung in das Radpaket-Dienstprogramm delocate für Mac OS X.

Dieser Artikel ist der 9. Tag von ** ADVENTAR ** Python Adventskalender 2015, nicht Qiita.

Was ist delocate

delocate ist ein Dienstprogramm für Radpakete für OS X. Matthew Brett

Es hat die folgenden Funktionen

Lassen Sie mich Ihnen ein Beispiel geben.

Zeigen Sie abhängige Bibliotheken mit dem Befehl delocate-listdeps an

Als Beispiel werde ich die neueste Version der Raddatei des Zellensimulators namens E-Cell verwenden. Wenn Sie vor dem Löschen eine eigene Raddatei erstellen möchten https://github.com/ecell/ecell4-wheels/blob/master/.travis.yml Bitte beachten Sie vor dem Löschen

Versuchen Sie zuerst den Befehl delocate-listdeps

> delocate-listdeps --all dist/ecell4-4.0.0b2-cp27-none-macosx_10_11_intel.whl      
/usr/lib/libSystem.B.dylib
/usr/lib/libc++.1.dylib
/usr/local/Cellar/gsl/1.16/lib/libgsl.0.dylib
/usr/local/Cellar/gsl/1.16/lib/libgslcblas.0.dylib
/usr/local/Cellar/hdf5/1.8.16/lib/libhdf5.10.dylib
/usr/local/Cellar/hdf5/1.8.16/lib/libhdf5_cpp.11.dylib

Die Raddatei ecell4-4.0.0b2-cp27-none-macosx_10_11_intel.whl ist Homebrew Sie können sehen, dass es von gsl und hdf5 abhängt.

--allStandardmäßig ohne Optionen/usr/libWann/systemZeigt die Bibliotheken nicht an. (Es scheint, dass die Bibliotheken in ihnen unter OSX üblich sind und Sie sich keine Sorgen machen müssen.)

Kopieren und erneutes Verknüpfen abhängiger Bibliotheken mit dem Befehl delocate-Wheel

Auch wenn das oben genannte Radpaket so verteilt ist, wie es ist

Nur Leute können es benutzen. (Um genau zu sein, ist nur der dritte Punkt "Ich kann das Rad nicht einbauen", anstatt es nicht verwenden zu können. Details werden später beschrieben.)

Dies liegt daran, dass das Radpaket erwartet, dass der von `` `delocate-listdeps``` bestätigte Pfad zur Bibliothek dynamisch verknüpft wird.

Der Befehl `` `Delocate-Wheel``` schreibt dies neu, damit es nicht von der Umgebung abhängt. Ein Beispiel wird gezeigt.

> delocate-wheel dist/ecell4-4.0.0b2-cp27-none-macosx_10_11_intel.whl 
> delocate-listdeps dist/ecell4-4.0.0b2-cp27-none-macosx_10_11_intel.whl 
@loader_path/.dylibs/libgsl.0.dylib
@loader_path/.dylibs/libgslcblas.0.dylib
@loader_path/.dylibs/libhdf5.10.dylib
@loader_path/.dylibs/libhdf5_cpp.11.dylib
@loader_path/libhdf5.10.dylib
@loader_path/libsz.2.0.0.dylib

Sie können sehen, dass der Befehl "Rad verschieben" die Dylib in den Baum der erwarteten Pfadräder verschiebt. Der erwartete Pfad hat sich nicht nur geändert, sondern die Dylib wurde kopiert, um in das Radpaket aufgenommen zu werden. (Sie können es sehen, indem Sie whl in zip umbenennen und entpacken.)

Plattform mit dem Befehl delocate-addplat hinzufügen

Mit dem Befehl delocate-rad konnten die abhängigen Bibliotheken in das Rad aufgenommen werden. Das letzte Problem besteht jedoch darin, dass nur die oben erwähnte "OSX-Version 10.11" unterstützt werden kann.

Wie in [PEP 0427] angegeben (https://www.python.org/dev/peps/pep-0427/) Dies liegt daran, dass das letzte Tag im Raddateinamen die Plattform angibt. (Dies ist nun macosx_10_11_intel.)

Der Befehl zum Hinzufügen einer Plattform lautet `` `delocate-addplat```. Hier ist ein Beispiel.

> delocate-addplat --rm-orig -x 10_9 -x 10_10 dist/ecell4-4.0.0b2-cp27-none-macosx_10_11_intel.whl 
> ls dist/     
ecell4-4.0.0b2-cp27-none-macosx_10_11_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl

Sie können sehen, dass die Plattform hinzugefügt wurde.

Zusammenfassung

Ich bin es leid, es zusammenzustellen, also ist es das.

Recommended Posts

Einführung in das Radpaket-Dienstprogramm delocate für Mac OS X.
Erstellen einer Umgebung für "Tello_Video" unter Mac OS X.
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Python-Umgebungskonstruktion für Programmieranfänger (Mac OS)
Hinweise zur Vorbereitung der Python-Entwicklungsumgebung unter Mac OS X.
Installieren Sie Sphinx unter MacOSX
Installation von scikit-learn (Mac OS X)
Installieren Sie mitmproxy unter Mac OS X.
Installieren Sie pgmagick unter Mac OS X 10.9
[Nur eine Anmerkung] Bis Keras + TensorFlow unter Mac OSX Sierra funktioniert
Einführung in die Graph Database Neo4j in Python für Anfänger (für Mac OS X)
Mac OS X Mavericks 10.9.5 Aufbau einer Entwicklungsumgebung
Installiert aws-cli Unter Mac OS X Lion
[Mac] Erstellen einer virtuellen Umgebung für Python
Mac OS X Yosemite 10.10 Aufbau einer Entwicklungsumgebung
Konstruktionsnotiz für die Mac OS X-Entwicklungsumgebung
Führen Sie NASA CEA unter Mac OS X aus
Erstellen Sie in 10 Minuten eine Python-Entwicklungsumgebung (Mac OS X + Visual Studio-Code).