Как загрузить пакеты Python в частное хранилище Nexus sonartype - PullRequest
1 голос
/ 14 июня 2019

Я настроил частный сервер артефактов Python Nexus-OSS-3.14 в облаке aws.Я хочу сохранить все пакеты Python, связанные с моим проектом, на моем частном сервере репозитория.

Я загрузил все пакеты Python на свой локальный компьютер Linux и хочу загрузить все пакеты Python на частный сервер артефактов Python.

Я пытался запросить curl put, и я не загружал, и ваша помощь нужна для этого.

Я пробовал запрос curl put:

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/

Когда я использовал эту команду, я получил ответ 404.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Я думаю, что рекомендуемый подход - использовать шпагат, что-то вроде этого должно работать

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

Он должен запросить ваше имя пользователя и пароль.Чтобы сделать жизнь немного проще, вы можете создать $HOME/.pypirc файл с URL, именем пользователя и паролем

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

Затем, когда вы вызываете шпагат, сделайте так:

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

Это не таксложное требование, но если вы работаете в многопользовательской системе и добавили пароль в файл, вам, вероятно, следует сделать

chmod 600 $HOME/.pypirc 
0 голосов
/ 19 июня 2019

Пип (пряжа) для скачивания.Шпагат для загрузки.Конфигурация:

будьте осторожны с конечными слешами!

Загрузите с помощью пипа (пряжи)

pip config edit [--editor [nano|code|...]] [--global|--user] для редактирования конфигурации

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

Или установить переменные окружения.Dockerfile, например:

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

Или использовать аргументы командной строки pip install --index

Загрузить с помощью шпагата

Редактировать .pypirc:

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

Или среда

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

Или командная строка

twine upload --repository-url

...