プライベート PyPI リポジトリをセットアップする必要があります。選択できるものがたくさんあることに気づきました。サーフィンした後、インストール手順が最も明確で、プロジェクトがアクティブであることがわかったので、djangopypi2を選択しました。
私はこれまで Django を使用したことがないので、質問は本当に Django の質問かもしれません。指示に従い、次のコマンドでアプリケーションを起動しました。
$ gunicorn_django djangopypi2.website.settings
リポジトリは思い通りに機能しています。「~/.pypirc」を構成した後、次を使用してパッケージをアップロードできます。
$ python setup.py sdist upload -r local
そして、「~/.pip/pip.conf」を「extra-index-url」で構成した後、次を使用してパッケージをインストールできます。
$ pip install <package-name>
ただし、誰でも私のパッケージを参照してダウンロードできます。認証はパッケージのアップロードにのみ必要なようです。この例を使用して、すべてのページへのログインを要求してみました: Django の login_required をデフォルトにする最良の方法
そしてこれを設定します:
LOGIN_REQUIRED_URLS = (
r'/(.*)$',
)
LOGIN_REQUIRED_URLS_EXCEPTIONS = (
r'/users/login(.*)$',
r'/users/logout(.*)$',
)
現在、webgui はすべてのページでログインを必要とするため、その部分は期待どおりに機能しますが、コマンドラインから pip およびアップロード ユーティリティを使用できなくなりました。
次のように「pip.conf」のextra-index-url設定を使用して「pip install xxx」を試しました:
extra-index-url = http://username:password@127.0.0.1:8000/simple/
しかし、「xxxのディストリビューションがまったく見つかりません」と表示されます
「python setup.py sdist アップロード」は次のようになります。
Submitting dist/xxx-0.0.1.tar.gz to http://127.0.0.1:8000/
Upload failed (302): FOUND
問題は、「pip」と「python setup.py register/upload」から認証を有効にするにはどうすればよいですか?