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

Die unangemessenen MaxIdleConns von MySQL führen zu kurzen Verbindungen

1 Hintergrund Vor kurzem sind im Online-Geschäft ...

Richtiger Einsatz von MySQL-Partitionstabellen

Übersicht über partitionierte MySQL-Tabellen Wir ...

Beispielanweisungen für Indizes und Einschränkungen in MySQL

Fremdschlüssel Abfrage, bei welchen Tabellen der ...

Analyse der Lösung für das Problem der gemeinsamen Nutzung von Nginx-Sitzungen

Dieser Artikel stellt hauptsächlich die Lösung fü...

Zusammenfassung zum horizontal scrollenden Website-Design

Horizontales Scrollen ist nicht in allen Situation...

Detaillierte Erklärung des Hash-Jump-Prinzips von Vue

Inhaltsverzeichnis Der Unterschied zwischen Hash ...

Ein paar Dinge, die Sie über responsives Layout wissen müssen

1. Einleitung Responsive Webdesign ermöglicht die...

CSS3-Countdown-Effekt

Ergebnisse erzielen Implementierungscode html <...

Zusammenfassung der Bootstrap-Lernerfahrung - Austausch von Designs im CSS-Stil

Aufgrund der Anforderungen des Projekts habe ich ...

Lösen Sie das Problem, dass ifconfig im Docker nicht verfügbar ist

Als ich kürzlich Docker lernte, stellte ich fest,...

Mehrere Möglichkeiten zum Generieren eindeutiger IDs in JavaScript

Mögliche Lösungen 1. Math.random generiert Zufall...