Менеджер репозитория Nexus как локальный pip-сервер не работает должным образом

Локальный сервер Nexus был настроен как наш локальный сервер pip. Я пытаюсь установить образец / тестовый класс (наследует), используя указанный локальный сервер. Загрузка на локальный сервер прошла успешно, но установка выполняется с помощью этой команды:

pip install -i http://<nexus-ip>:8081/repository/pypi-all/pypi inherits

Приведено к этому:

  Could not find a version that satisfies the requirement inherits 
  (from versions: )
  No matching distribution found for inherits

Я также попробовал эти команды, но результаты те же:

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

Вот содержимое моего ~/.pypirc:

[distutils]
index-servers =
    nexus
    pypi

[nexus]
username: my-username
password: mypassword
repository: http://<nexus-ip>:8081/nexus/repository/pypi-internal/

[pypi]
...

Вот содержимое моего ~/.config/pip/pip.conf

[global]
index = http://<nexus-ip>:8081/repository/pypi-all/pypi
index-url = http://<nexus-ip>:8081/repository/pypi-all/simple

Как уже упоминалось, загрузка с использованием приведенной ниже команды прошла успешно:

python setup.py sdist upload -r nexus

Ответ от сервера Nexus находится здесь (то есть означает, что загрузка прошла успешно):

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

Содержимое файла setup.py является основными деталями:

#!/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 = [],
)

Любые идеи о том, как решить эту проблему и заставить работать установку pip? Заранее спасибо!

4 ответа

Если кто-то столкнулся с той же проблемой и заинтересован в ее решении, я сделал две вещи.

1. Выполните пункт, используя это:

pip install inherits -i http://<nexus-ip>:8081/nexus/repository/pypi-all/simple -v --trusted-host <nexus-ip>

Параметры -v и --trusted-host являются необязательными

2. Переместите ~/.config/pip/pip.conf в ~/.pip/pip.conf и выполните:

pip install inherits -v —trusted-host <nexus-ip>

Единственная проблема, с которой столкнулся #2 - pip всегда подключается к серверу nexus. Поэтому, если я хочу подключиться к pypi.org, мне сначала нужно переименовать pip.conf.

Надеюсь, это поможет кому-то!

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

В следующих шагах замените pypi-mw с вашим личным именем реестра nexus pypi.

Добавить пользователя Nexus со всеми необходимыми привилегиями

Создать новую роль. Отфильтруйте все привилегии по имени вашего pypi-реестра и добавьте их все. Примените новую роль к своему пользователю (вы можете детализировать привилегии позже):

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

Поместите это в ~/.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

Редактировать pip.conf

Поместите это в ~/.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/

Попробуйте это

Если все работает как надо, теперь у вас есть возможность загрузить свои пакеты в pypi как это:

python setup.py bdist_wheel upload

Или в ваш личный реестр:

python setup.py bdist_wheel upload -r "pypi-mw"

Для установки пакета вы можете запустить обычную команду:

pip install mypackage --user 

Теперь надо поискать оба реестра (pypi а также pypi-mw) для вашей посылки.

Настройка pip с репозиторием nexus в Windows

Создать в папке %APPDATA%/pip/pip.ini, в вашем случае перейдите в свою папку, затем создайте текстовый файл в pip папка

В моем местном т / ц %APPDATA% является C:\Users\username\AppData\Roaming>

Добавьте строки ниже в pip.ini

      [global]
trusted-host=nexus.example.com:8443
index = https://nexus.example.com/repository/pypi-group/pypi
index-url = https://nexus.example.com/repository/pypi-group/simple
no-cache-dir = false

Затем вы можете запустить команду pip из командной строки Windows

Я столкнулся с той же проблемой, и я решил ее, добавив роли pypip-read и pypip-browse для моего анонимного пользователя на Nexus.

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