Ein lokaler Nexus-Server wurde als unser lokaler Pip-Server eingerichtet. Ich versuche, eine Beispiel-/Testklasse (Erben) unter Verwendung des lokalen Servers zu installieren. Das Hochladen auf den lokalen Server ist erfolgreich, die Installation erfolgt jedoch mit dem folgenden Befehl:
pip install -i http://<nexus-ip>:8081/repository/pypi-all/pypi inherits
Daraus resultiert:
Could not find a version that satisfies the requirement inherits
(from versions: )
No matching distribution found for inherits
Ich habe auch diese Befehle ausprobiert, aber die Ergebnisse sind die gleichen:
pip install inherits
pip install -i http://<nexus-ip>:8081/repository/pypi-all/pypi inherits-0.1
pip install -i http://<nexus-ip>:8081/repository/pypi-all/pypi inherits==0.1
Hier ist der Inhalt meiner ~/.pypirc:
[distutils]
index-servers =
nexus
pypi
[nexus]
username: my-username
password: mypassword
repository: http://<nexus-ip>:8081/nexus/repository/pypi-internal/
[pypi]
...
Hier ist der Inhalt meiner ~/.config/pip/pip.conf
[global]
index = http://<nexus-ip>:8081/repository/pypi-all/pypi
index-url = http://<nexus-ip>:8081/repository/pypi-all/simple
Wie bereits erwähnt, ist das Hochladen mit dem folgenden Befehl erfolgreich:
python setup.py sdist upload -r nexus
Die Antwort vom Nexus-Server ist hier (d. H. Bedeutet, dass der Upload erfolgreich war):
creating inherits-0.1
creating inherits-0.1/inherits
creating inherits-0.1/inherits.Egg-info
copying files to inherits-0.1...
copying setup.cfg -> inherits-0.1
copying setup.py -> inherits-0.1
copying inherits/__init__.py -> inherits-0.1/inherits
copying inherits/addmult.py -> inherits-0.1/inherits
copying inherits/inherits.py -> inherits-0.1/inherits
copying inherits/subdiv.py -> inherits-0.1/inherits
copying inherits.Egg-info/PKG-INFO -> inherits-0.1/inherits.Egg-info
copying inherits.Egg-info/SOURCES.txt -> inherits-0.1/inherits.Egg-info
copying inherits.Egg-info/dependency_links.txt -> inherits-0.1/inherits.Egg-info
copying inherits.Egg-info/top_level.txt -> inherits-0.1/inherits.Egg-info
Writing inherits-0.1/setup.cfg
Creating tar archive
removing 'inherits-0.1' (and everything under it)
running upload
Submitting dist/inherits-0.1.tar.gz to http://<nexus-ip>:8081/nexus/repository/pypi-internal/
Server response (200): OK
Inhalt der setup.py sind die grundlegenden Details:
#!/usr/bin/env python
import os
import sys
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
requires = []
setup(
name = "inherits",
packages = ["inherits"],
version = '0.1',
description = 'Example inherits package',
#url = "",
#download_url = "",
author = "Jayson Pryde",
classifiers = [],
)
Irgendwelche Ideen, wie man dies löst und die Pip-Installation zum Laufen bringt? Danke im Voraus!
Falls jemand auf dasselbe Problem gestoßen ist und sich für eine Lösung interessiert, habe ich zwei Dinge getan.
1. Führe pip folgendermaßen aus:
pip install inherits -i http://<nexus-ip>:8081/nexus/repository/pypi-all/simple -v --trusted-Host <nexus-ip>
Die Parameter -v und --trusted-Host sind optional
2. Verschieben Sie Ihre ~/.config/pip/pip.conf nach ~/.pip/pip.conf und führen Sie Folgendes aus:
pip install inherits -v —trusted-Host <nexus-ip>
Die einzige Herausforderung bei # 2 ist, dass pip immer eine Verbindung zum Nexus-Server herstellt. Wenn ich mich also mit pypi.org verbinden möchte, muss ich zuerst die pip.conf umbenennen.
Hoffe das hilft jemandem!
Ich bin auf dasselbe Problem gestoßen und habe es behoben, indem ich meinem anonymen Benutzer auf Nexus die Rolle "pypip-read" und "pypip-browse" hinzugefügt habe.
Ich bin auf dasselbe Problem gestoßen. Ich habe die folgenden Schritte verwendet, um es zu lösen. Es funktioniert jetzt einwandfrei.
Ersetzen Sie in den folgenden Schritten
pypi-mw
durch Ihren privaten Registrierungsnamen nexus pypi.
Nexus-Benutzer mit allen erforderlichen Berechtigungen hinzufügen
Erstellen Sie eine neue Rolle. Filtern Sie alle Berechtigungen nach Ihrem pypi-Registrierungsnamen und fügen Sie sie alle hinzu. Wenden Sie die neue Rolle auf Ihren Benutzer an (Sie können die Berechtigungen später genauer festlegen):
Bearbeite .pypirc
Gib das in ~/.pypirc
ein
[distutils]
index-servers =
pypi
pypi-mw
[pypi]
repository: https://pypi.python.org/pypi
username: peter
[pypi-mw]
repository: https://my-private-registry.com/repository/pypi-mw/
username: peter
pip.conf bearbeiten
Fügen Sie dies in ~/.pip/pip.conf
ein:
[global]
index = https://pypi.python.org/pypi/
index-url=https://pypi.python.org/simple/
extra-index-url=https://my-private-registry.com/repository/pypi-mw/simple/
Probieren Sie es aus
Wenn alles so funktioniert, wie es sollte, haben Sie jetzt die Möglichkeit, Ihre Pakete wie folgt auf pypi
hochzuladen:
python setup.py bdist_wheel upload
Oder zu Ihrer privaten Registrierung:
python setup.py bdist_wheel upload -r "pypi-mw"
Um ein Paket zu installieren, können Sie den üblichen Befehl ausführen:
pip install mypackage --user
Es sollte nun beide Registries (pypi
und pypi-mw
) nach Ihrem Paket durchsuchen.