Менеджер репозитория 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.