Un serveur de lien local a été configuré en tant que notre serveur local pip. J'essaye d'installer un échantillon/classe de test (hérite) en utilisant ledit serveur local. Le téléchargement sur le serveur local a réussi, mais l'installation à l'aide de cette commande:
pip install -i http://<nexus-ip>:8081/repository/pypi-all/pypi inherits
Résultat à ceci:
Could not find a version that satisfies the requirement inherits
(from versions: )
No matching distribution found for inherits
J'ai aussi essayé ces commandes, mais les résultats sont les mêmes:
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
Voici le contenu de mon ~/.pypirc:
[distutils]
index-servers =
nexus
pypi
[nexus]
username: my-username
password: mypassword
repository: http://<nexus-ip>:8081/nexus/repository/pypi-internal/
[pypi]
...
Voici le contenu de mon ~/.config/pip/pip.conf
[global]
index = http://<nexus-ip>:8081/repository/pypi-all/pypi
index-url = http://<nexus-ip>:8081/repository/pypi-all/simple
Comme mentionné, le téléchargement à l'aide de la commande ci-dessous est réussi:
python setup.py sdist upload -r nexus
La réponse du serveur Nexus est ici (c’est-à-dire que le téléchargement a été effectué avec succès):
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
Le contenu de setup.py contient les détails de base:
#!/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 = [],
)
Des idées sur la façon de résoudre ce problème et de faire en sorte que l'installation de pip fonctionne? Merci d'avance!
Si quelqu'un a rencontré le même problème et est intéressé par une solution, voici deux choses que j'ai faites.
1. Exécutez pip en utilisant ceci:
pip install inherits -i http://<nexus-ip>:8081/nexus/repository/pypi-all/simple -v --trusted-Host <nexus-ip>
Les paramètres -v et --trusted-Host sont optionnels
2. Déplacez votre ~/.config/pip/pip.conf vers ~/.pip/pip.conf et exécutez:
pip install inherits -v —trusted-Host <nexus-ip>
Le seul défi rencontré avec # 2 est que pip se connectera toujours au serveur Nexus. Donc, si je veux me connecter à pypi.org, je dois tout d'abord renommer le fichier pip.conf.
J'espère que cela aide quelqu'un!
J'ai rencontré le même problème et je l'ai résolu en ajoutant le rôle pypip-read et pypip-browse à mon utilisateur anonyme sur Nexus.
J'ai rencontré le même problème. J'ai utilisé les étapes suivantes pour le résoudre. Cela fonctionne parfaitement maintenant.
Dans les étapes suivantes, remplacez
pypi-mw
par votre nom de registre privé nexus pypi.
Ajouter un utilisateur Nexus avec tous les privilèges nécessaires
Créez un nouveau rôle. Filtrez tous les privilèges en fonction de votre nom pypi-registry et ajoutez-les tous. Appliquez le nouveau rôle à votre utilisateur (vous pourrez affiner ultérieurement vos privilèges):
Éditez .pypirc
Mettez ceci dans ~/.pypirc
[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
Editer pip.conf
Mettez ceci dans ~/.pip/pip.conf
:
[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/
Essayez-le
Si tout fonctionne comme il se doit, vous avez maintenant la possibilité de télécharger vos paquets sur pypi
comme ceci:
python setup.py bdist_wheel upload
Ou à votre registre privé:
python setup.py bdist_wheel upload -r "pypi-mw"
Pour installer un paquet, vous pouvez exécuter la commande habituelle:
pip install mypackage --user
Il devrait maintenant rechercher votre paquet dans les deux registres (pypi
et pypi-mw
).