21 votes

Comment télécharger les paquets python dans le repo privé de Nexus sonartype ?

J'ai configuré le serveur privé Nexus-OSS-3.14 Python artifact sur aws cloud. Je veux maintenir tous les paquets Python liés à mon projet sur mon serveur de dépôt privé.

J'ai téléchargé tous les paquets Python sur ma machine Linux locale et je veux télécharger tous les paquets Python sur un serveur d'artefacts Python privé.

J'ai essayé curl put request et je n'ai pas téléchargé et votre aide est nécessaire pour compléter ceci.

J'ai essayé curl put request :

curl -v -u admin:admin --upload-file boto3-1.9.76-py2.py3-none-any.whl https://artifact.example.com/repository/ASAP-Python-2.7-Hosted/

Lorsque j'utilise cette commande et que j'obtiens une réponse 404.

24voto

Michael Robinson Points 119

Je pense que l'approche recommandée est d'utiliser twine Le système devrait fonctionner de la manière suivante :

pip install twine
twine upload --repository https://artifact.example.com/repository/ASAP-Python-2.7-Hosted/ boto3-1.9.76-py2.py3-none-any.whl

Il devrait vous demander votre nom d'utilisateur et votre mot de passe. Pour vous faciliter la tâche, vous pouvez créer $HOME/.pypirc avec l'URL, le nom d'utilisateur et le mot de passe

[nexus]
repository: https://artifact.example.com/repository/ASAP-Python-2.7-Hosted/
username: admin
password: admin

Ensuite, lorsque vous appelez twine Il s'agit de le faire de cette manière :

twine upload --repository nexus boto3-1.9.76-py2.py3-none-any.whl

Ce n'est pas une exigence absolue, mais si vous êtes sur un système multi-utilisateurs et que vous avez mis un mot de passe dans le fichier, vous devriez probablement le faire.

chmod 600 $HOME/.pypirc

9voto

pavel.smolkin Points 102

Pip (fil) à télécharger. Twine pour le téléchargement. Configuration :

Attention aux barres obliques !

Télécharger avec pip (fil)

pip config edit [--editor [nano|code|...]] [--global|--user] pour modifier la configuration

[global]
index = https://nexus.your.domain/repository/pypi/pypi
index-url = https://nexus.your.domain/repository/pypi/simple

Ou définir des variables d'environnement. Dockerfile par exemple :

ENV \
  PIP_INDEX=https://nexus.your.domain/repository/pypi/pypi \
  PIP_INDEX_URL=https://nexus.your.domain/repository/pypi/simple

Ou utiliser les paramètres de la ligne de commande pip install --index

Transférer avec de la ficelle

Editar .pypirc :

[distutils]
index-servers =
pypi
[pypi]
repository: https://nexus.your.domain/repository/pypi-hosted/
username: nexususername
password: nexuspassword 

Ou l'environnement

ENV \
  TWINE_REPOSITORY_URL=https://nexus.your.domain/repository/pypi-hosted/ \
  TWINE_USERNAME=nexususername \
  TWINE_PASSWORD=nexuspassword

Ou ligne de commande

twine upload --repository-url

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X