web-dev-qa-db-ja.com

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

ネクサスサーバーからの応答はここにあります(つまり、アップロードが成功したことを示します):

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インストールを機能させる方法についてのアイデアはありますか?前もって感謝します!

6
jaysonpryde

誰かが同じ問題に遭遇し、解決策に興味がある場合は、ここで2つのことを行いました。

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が常にネクサスサーバーに接続することです。したがって、pypi.orgに接続する場合は、最初にpip.confの名前を変更する必要があります。

これが誰かを助けることを願っています!

10
jaysonpryde

私は同じ問題に出くわしました。次の手順で解決しました。今では問題なく動作します。

次の手順で、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-NEXUS-USER:[email protected]/repository/pypi-mw/simple/
trusted-Host = my-private-registry.com

実際に試す

すべてが正常に機能する場合は、次のようにパッケージをpypiにアップロードするオプションがあります。

python setup.py bdist_wheel upload

またはあなたのプライベートレジストリに:

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

パッケージをインストールするには、通常のコマンドを実行できます。

pip install mypackage --user 

これで、両方のレジストリ(pypiおよびpypi-mw)でパッケージが検索されます。

2
Rotareti

同じ問題が発生しましたが、Nexusの匿名ユーザーにpypip-readおよびpypip-browseロールを追加することで解決しました。

1
Kyrremann