Nexus存储库管理器作为pip本地服务器无法正常工作

时间:2017-01-23 07:39:27

标签: python pip nexus localserver

已将本地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]
...

这是内容my~ / .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安装工作的任何想法?提前谢谢!

3 个答案:

答案 0 :(得分:8)

如果有人遇到同样的问题并且对解决方案感兴趣,我做了两件事。

<强> 1。使用以下命令执行pip:

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。

希望这有助于某人!

答案 1 :(得分:0)

我遇到了同样的问题,我通过在Nexus上为我的匿名用户添加pypip-read和pypip-browse角色解决了这个问题。

答案 2 :(得分:0)

我遇到了同样的问题。我使用以下步骤来解决它。它现在完美无瑕。

  

在以下步骤中,将pypi-mw替换为您的私人nexus pypi注册表名称。

为Nexus用户添加所有必要的权限

创建一个新角色。按照您的pypi-registry名称过滤所有权限并将其全部添加。将新角色应用于您的用户(您可以稍后细化):

enter image description here

编辑.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 

现在应该搜索您的包的两个注册管理机构(pypipypi-mw)。