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
0
1 235
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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

ну, я работаю через контейнер, поэтому я вошел в контейнер, используя docker exec -it [container-id] bash, и выполнил указанные вами команды: root@efeb7f50c961:/# devpi login root password for user root: , и я получил следующую ошибку красным цветом: could not connect to None: Invalid URL 'None': No schema supplied. Perhaps you meant http://None?, затем я попробовал devpi user -c me password=mypass, который выдал ошибку красным цветом could not connect to '/me': Invalid URL '/me': No schema supplied. Perhaps you meant http:///me?, мне нужно что-то установить?

Ciasto piekarz 28.05.2018 18:23

Вы должны делать это вне контейнера. Установите devpi-client на свой хост, запустите контейнер и вызовите команды.

hoefling 28.05.2018 18:26

при попытке установить devpi-client на хост-машину я получаю эту ошибку: Collecting virtualenv>=1.11.2 (from tox!=3.0.0rc1,>=1.7.1->devpi-client) Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='127.0.0.1', port=3141): Read timed out. (read timeout=15)",)': /root/pypi/+f/2ce/32cd126117ce2/virtualenv-16.0.0-py2.py3-no‌​ne-any.whl, и дальше она не пойдет

Ciasto piekarz 28.05.2018 18:31

Каким-то образом это удалось, и клиент devpi был установлен, однако я все равно получаю ту же ошибку, если попробую devpi user -c me password=mypass

Ciasto piekarz 28.05.2018 18:34

Ой, забыл упомянуть devpi use, его нужно запустить один раз перед тем, как вы начнете подключаться к серверу. Я обновил ответ.

hoefling 28.05.2018 18:42

Я также упомянул об установке devpi-client на хост для полноты картины.

hoefling 28.05.2018 18:45

@hoefing: Я понял для devpi use 127.0.0.1:3141/, как я не могу открыть URL-адрес 127.0.0.1:3141/san/pypi/+simple, как я могу открыть 127.0.0.1:3141/root/pypi/+simple

Ciasto piekarz 28.05.2018 18:48

Что вы имеете в виду под словом «открытый»? Какое сообщение об ошибке вы получаете?

hoefling 28.05.2018 18:50

Сегодня, работая в офисе, я добивался этого, даже несмотря на то, что у нас есть сервер devpi в офисе, о котором никто не знает и не использует весь потенциал.

Ciasto piekarz 28.05.2018 19:02

Йепп, это классная штука. Мы начали использовать devpi три или четыре года назад, сейчас у нас работает три сервера (главный + две реплики), и до сих пор мы пережили каждое отключение PyPI, а также простота написания расширений для сервера и клиента поразительна.

hoefling 28.05.2018 19:09

Другие вопросы по теме