Drittanbieter-Module

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Python verfügt über eine umfangreiche Bibliothek eingebauter Module (batteries included).

Es gibt noch viele weitere Drittanbieter-Module. Prüfen Sie sie im Python Package Index oder PyPi. Oder führen Sie einfach eine Google-Suche zu einem bestimmten Thema durch.

Das Handling von Drittanbieterabhängigkeiten ist ein ständig sich entwickelndes Thema bei Python. Dieser Abschnitt behandelt lediglich die Grundlagen, um Ihnen zu helfen, die Funktionsweise zu verstehen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") python/PythonStandardLibraryGroup -.-> python/os_system("Operating System and System") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") subgraph Lab Skills python/python_shell -.-> lab-132739{{"Drittanbieter-Module"}} python/importing_modules -.-> lab-132739{{"Drittanbieter-Module"}} python/standard_libraries -.-> lab-132739{{"Drittanbieter-Module"}} python/constructor -.-> lab-132739{{"Drittanbieter-Module"}} python/regular_expressions -.-> lab-132739{{"Drittanbieter-Module"}} python/os_system -.-> lab-132739{{"Drittanbieter-Module"}} python/numerical_computing -.-> lab-132739{{"Drittanbieter-Module"}} end

Der Modulsuchpfad

sys.path ist ein Verzeichnis, das die Liste aller Verzeichnisse enthält, die vom import-Statement überprüft werden. Schauen Sie sich es an:

>>> import sys
>>> sys.path
... schauen Sie sich das Ergebnis an...
>>>

Wenn Sie etwas importieren und es nicht in einem dieser Verzeichnisse liegt, erhalten Sie eine ImportError-Ausnahme.

Module der Standardbibliothek

Module aus Python's Standardbibliothek stammen normalerweise aus einem Ort wie /usr/local/lib/python3.6. Sie können dies mit einem kurzen Test sicherstellen:

>>> import re
>>> re
<module're' from '/usr/local/lib/python3.6/re.py'>
>>>

Das einfache Betrachten eines Moduls in der REPL ist ein guter Debugging-Tipp. Es zeigt Ihnen den Speicherort der Datei.

Drittanbieter-Module

Drittanbieter-Module befinden sich normalerweise in einem speziellen site-packages-Verzeichnis. Sie werden es sehen, wenn Sie die gleichen Schritte wie oben ausführen:

>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>

Wiederum ist das Betrachten eines Moduls ein guter Debugging-Tipp, wenn Sie versuchen, herauszufinden, warum etwas im Zusammenhang mit import nicht wie erwartet funktioniert.

Installation von Modulen

Die am häufigsten verwendete Methode zum Installieren eines Drittanbieter-Moduls ist das Verwenden von pip. Beispielsweise:

$ python3 -m pip install packagename

Dieser Befehl wird das Paket herunterladen und in das site-packages-Verzeichnis installieren.

Probleme

  • Sie verwenden möglicherweise eine Python-Installation, die Sie nicht direkt steuern können.
    • Eine von der Firma genehmigte Installation
    • Sie verwenden die mit dem Betriebssystem zusammengegebene Python-Version.
  • Sie haben möglicherweise keine Berechtigung, globale Pakete auf dem Computer zu installieren.
  • Es könnten andere Abhängigkeiten bestehen.

Virtuelle Umgebungen

Eine übliche Lösung für Paketinstallationsprobleme ist es, sich eine sogenannte "virtuelle Umgebung" zu erstellen. Natürlich gibt es keine "eindeutige Methode", um dies zu tun - tatsächlich gibt es mehrere konkurrierende Tools und Techniken. Wenn Sie jedoch eine standardmäßige Python-Installation verwenden, können Sie versuchen, Folgendes einzugeben:

$ sudo apt install python3-venv
$ python -m venv mypython
bash %

Nach ein paar Minuten Wartezeit haben Sie ein neues Verzeichnis mypython, das eine eigene kleine Python-Installation ist. Innerhalb dieses Verzeichnisses finden Sie ein bin/-Verzeichnis (Unix) oder ein Scripts/-Verzeichnis (Windows). Wenn Sie das dort gefundene activate-Skript ausführen, wird diese Python-Version "aktiviert", sodass sie die Standard-python-Befehl für die Shell wird. Beispielsweise:

$ source mypython/bin/activate
(mypython) bash %

Von hier aus können Sie nun Python-Pakete für sich installieren. Beispielsweise:

(mypython) $ python -m pip install pandas

...

Für das Experimentieren und Ausprobieren verschiedener Pakete wird eine virtuelle Umgebung normalerweise gut funktionieren. Wenn Sie andererseits eine Anwendung erstellen und diese bestimmte Paketabhängigkeiten hat, ist das ein etwas anderes Problem.

Die Verwaltung von Drittanbieterabhängigkeiten in Ihrer Anwendung

Wenn Sie eine Anwendung geschrieben haben und diese bestimmte Drittanbieterabhängigkeiten hat, stellt sich eine Herausforderung bei der Erstellung und Aufrechterhaltung der Umgebung, die Ihren Code und die Abhängigkeiten umfasst. Leider ist dies ein Bereich, der in Python's Lebenszeit großen Verwirrung und häufigen Änderungen unterworfen war. Es entwickelt sich auch weiterhin.

Anstatt Ihnen Informationen zu liefern, die bald veraltet sein werden, verweise ich Sie auf die Python Packaging User Guide.

Übung 9.4: Erstellen einer virtuellen Umgebung

Versuchen Sie, die Schritte zum Erstellen einer virtuellen Umgebung und Installieren von pandas in diese wie oben gezeigt nachzustellen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Labor zu Drittanbieter-Modulen abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.