So verwenden Sie Docker+DevPi zum Erstellen einer lokalen PyPi-Quelle

So verwenden Sie Docker+DevPi zum Erstellen einer lokalen PyPi-Quelle

Vor einiger Zeit musste ich für die Entwicklung häufig Pip-Downloads verwenden. Obwohl ich die Pip-Quelle auf eine inländische Quelle umgestellt hatte, war ich mit der Geschwindigkeit immer noch nicht zufrieden. Noch wichtiger war, dass die integrierte Testumgebung offline war. Um in der integrierten Testumgebung entwickeln zu können, musste ich offensichtlich meine eigene lokale Pip-Quelle erstellen. Vor der Verwendung von devpi habe ich pip2pi verwendet, aber es gab einen Fehler, der dazu führte, dass der Befehl tox in einer Offlineumgebung immer fehlschlug. Daher habe ich schließlich devpi zum Erstellen der Pip-Quelle verwendet. Hier wird die Docker-Bereitstellung verwendet, die praktisch und schnell ist. Wenn es versehentlich abstürzt, müssen Sie den Docker-Container nur erneut ausführen. Wenn Docker in Ihrer Umgebung nicht installiert ist, können Sie selbst nach Installationsmethoden suchen, beispielsweise im Dokument „Install Docker“ der Docker-Community. Wenn Sie ein CentOS-Benutzer sind, können Sie es mit der folgenden Methode installieren

sudo yum update
sudo yum -y installiere Docker
sudo systemctl Docker aktivieren
sudo systemctl starte Docker

Als nächstes verwenden wir Docker, um eine lokale Python-Image-Quelle bereitzustellen. Wir können das vorhandene Image auf Docker Hub verwenden. Ich wähle
muccg/devpi dieses Bild

# Legen Sie das Administratorkennwort des devpi-Servers fest DEVPI_PASSWORD = 123

mkdir -p /src/docker/devpi
mkdir /tmp/Steuerhaus

docker run -d --name devpi \
  --veröffentlichen 3141:3141 \
  --volume /tmp/Steuerhaus:/Steuerhaus
  --volume /srv/docker/devpi:/data \
  --env=DEVPI_PASSWORD=$DEVPI_PASSWORD \
  --restart immer \
  muccg/docker-devpi

Laden Sie als Nächstes das erforderliche Wheel-Paket lokal herunter. Der Inhalt der Datei requirements.txt ist die Liste der Python-Bibliotheken, die wir benötigen.

pip wheel --wheel-dir /tmp/wheelhouse -r Anforderungen.txt

Wenn die von Pip heruntergeladene Bibliothek bereits ein Wheel-Paket ist, wird die Datei direkt in /tmp/wheelhouse abgelegt.
Tar-Paket, pip erstellt zuerst ein Wheel-Paket, was einige Zeit dauern kann. Nach Abschluss des Downloads ähnelt der Inhalt von Wheelhouse

ll /tmp/Steuerhaus
insgesamt 524K
-rwxrwxrwx 1 Anfänger Anfänger 155K 6. April 23:40 certifi-2019.3.9-py2.py3-none-any.whl
-rwxrwxrwx 1 Anfänger Anfänger 131K 6. April 23:40 chardet-3.0.4-py2.py3-none-any.whl
-rwxrwxrwx 1 Anfänger Anfänger 58K 6. April 23:40 idna-2.8-py2.py3-none-any.whl
-rwxrwxrwx 1 Anfänger Anfänger 57K 6. April 23:40 Anfragen-2.21.0-py2.py3-none-any.whl
-rwxrwxrwx 1 Anfänger Anfänger 116K 6. April 23:40 urllib3-1.24.1-py2.py3-none-any.whl

Wenn der Download abgeschlossen ist und in der lokalen Umgebung der devpi-Client installiert ist, können Sie das Wheel-Paket direkt hochladen. Da wir jedoch bereits

Montieren Sie wheelhouse Steuerhausordner in den Container, oder arbeiten Sie direkt im Container

# Geben Sie den Container ein docker exec -it -u root devpi bash

# Einloggen und devpi hochladen, verwenden Sie http://<host_ip>:3141/root/public --set-cfg
devpi-Anmeldestamm 123
devpi-Upload --aus-Verzeichnis /wheelhouse

Nachdem der Upload abgeschlossen ist, können Sie http://<host_ip>:3141 verwenden, um den Status des lokalen Pip-Quellservers anzuzeigen.

Für den vorübergehenden Gebrauch können Sie die Optionen --index und --trusted-host von pip install verwenden.

pip install --index http://<host_ip>:3141/root/public/+simple/ \
      --trusted-host <Host-IP>

Oder ändern Sie die Datei pip.conf, um sie dauerhaft zu verwenden

# vim ~/.pip/pip.conf
[global]
index_url = http://<Host-IP>:3141/root/public/+simple/
vertrauenswürdiger Host = <Host-IP>
[suchen]
index = http://<Host-IP>:3141/root/public/

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So verwenden Sie das Python-Verpackungsmodulrad und veröffentlichen Python-Pakete auf PyPI
  • So laden Sie Pakete in Python auf pypi hoch
  • So verwenden Sie Docker zum Erstellen eines privaten pypi-Repositorys
  • Detaillierte Erläuterung des Prozesses zum Aufbau eines privaten pypi-Lagers
  • Perfekte Lösung für den pyinstaller-Verpackungsfehler, der die Abhängigkeit pypiwin32 oder pywin32-ctypes nicht finden kann
  • So veröffentlichen Sie Python-Pakete in PyPI und erstellen WHL-Dateien
  • Erstellen Sie ein selbst erstelltes Python-Paket und verwenden Sie pip, um die Übermittlung an pypi zu vermeiden. Installieren Sie es nur auf dem lokalen Computer [empfohlen]
  • Verwenden Sie die von Douban bereitgestellte inländische Pypi-Quelle
  • Python lädt Paket zu Pypi hoch (einfacher Code)
  • So installieren Sie Drittanbieterbibliotheken von einer nicht offiziellen PyPI-Website mit Pip in Python
  • So laden Sie Ihre eigenen Module auf pypi hoch

<<:  Detaillierte Erklärung zur Verwendung des MySQL-Sicherungsskripts mysqldump

>>:  Vuex in einem Artikel verstehen

Artikel empfehlen

MySQL SHOW PROCESSLIST unterstützt den gesamten Prozess der Fehlerbehebung

1. SHOW PROCESSLIST-Befehl SHOW PROCESSLIST zeigt...

So verwenden Sie HTML+CSS zum Erstellen einer TG-Vision-Homepage

Dieses Mal verwenden wir HTML+CSS-Layout, um eine...

Zusammenfassung einiger gängiger Verwendungen von Refs in React

Inhaltsverzeichnis Was sind Refs 1. Referenzen vo...

Lösen Sie das Problem des MySQL-Datenverlusts, wenn Docker Redis neu startet

Amtliche Dokumentation: Daher sollte MySQL wie fo...

So fügen Sie Bilder in HTML-Seiten ein und fügen Kartenindexbeispiele hinzu

1. Im Web unterstützte Bildformate: GIF: kann 256...

Vue Virtual DOM – Schnellstart

Inhaltsverzeichnis Virtueller DOM Was ist virtuel...

Detaillierte Erläuterung der MySQL-Transaktionsisolationsebene und des MVCC

Inhaltsverzeichnis Transaktionsisolationsebene Be...

Detaillierte Erklärung der jQuery-Methodenattribute

Inhaltsverzeichnis 1. Einführung in jQuery 2. jQu...