URL клиента для самостоятельного размещения devpi?
Я использую этот док-контейнер devpi
в соответствии с инструкцией у меня есть пароль для установки в переменной окружения DEVPI_PASSWORD, чтобы затем devpi
У меня есть файл настройки ~/.pypirc
[devpi]
repository:http://127.0.0.1:3141/root/pypi
username:root
password:devpi
но при попытке загрузить (чтобы обновить его, поскольку он содержит старую версию моего пакета) пакет Python я получаю ошибку
$ twine upload -r devpi dist/*.tar.gz
Uploading distributions to http://127.0.0.1:3141/root/pypi
Uploading maildiff-1.3.0.tar.gz
100%|███████████████████████████████████████| 16.4k/16.4k [00:00<00:00, 667kB/s]
HTTPError: 404 Client Error: Not Found for url: http://127.0.0.1:3141/root/pypi
так какой должен быть клиентский URL?
1 ответ
/root/pypi
является доступной только для чтения прокси-ссылкой на репозиторий PyPI по адресу https://pypi.org/. Его целью является установка пакетов, когда они недоступны на вашем локальном компьютере. devpi
пример. Чтобы загрузить пакеты в локальный экземпляр, сначала нужно создать пользователя без полномочий root и индекс. На вашем хосте запустите контейнер и (при условии, что сработало отображение порта от контейнера к хосту):
$ devpi use http://127.0.0.1:3141
$ devpi login root # by default, only root can create new users
$ devpi user -c me password=mypass # create new user
$ devpi login me # relogin as the new user
$ devpi index -c myindex bases=/root/pypi # create new index
Если вы получили ошибку devpi: command not found
, остановите контейнер и установите devpi-client
на вашем хосте:
$ pip install devpi-client
Теперь у вас есть индекс http://127.0.0.1:3141/me/myindex
Вы можете загрузить на. Конфигурация в .pypirc
изменения в:
[devpi]
repository:http://127.0.0.1:3141/me/myindex
username:me
password:mypass
Установка из индекса будет работать путем передачи URL индекса в pip
:
$ pip install maildiff --extra-index-url=http://127.0.0.1:3141/me/myindex