0

プライベート 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」から認証を有効にするにはどうすればよいですか?

4

2 に答える 2

0

アクセス制御を使用する代わりに、これを実行するのが本当にlocalhostである場合は、gunicorn_djangoをループバックインターフェイスにバインドします。

gunicorn_django -b 127.0.0.1:80 djangopypi2.website.settings

そうすれば、他のマシンはサービスにアクセスできなくなります。

私はあなたが認証するためにpipを得ることができることに懐疑的です、この質問を見てください。

于 2013-01-31T17:49:14.910 に答える
0

思い通りにdjangopypi2をセットアップできませんでした。PloneSoftwareCenter、mypypi、djangopypi、chishop、pypi-server、ClueReleaseManager、eggbasketなど、他の多くのpypiサーバーをセットアップしようとしましたが、必要な機能がなかったり、依存関係が壊れているためにインストールが失敗したり、私が従うことができるインストール手順、またはその使用方法のドキュメントがなかったため、私は自分に合ったより簡単なソリューションを作成することになりました。

Pythonパッケージを公開するためにラッパースクリプトを使用しているため、「python setup.py upload -r private」の部分が機能する必要はありませんでした。その代わりに、スクリプトに -p (プライベート) オプションを追加しました。これにより、パッケージがビルドされ、サーバーのパッケージ ディレクトリに scp されます。

pip install を機能させるために、pip が望む方法でパッケージへのリンクを作成する cgi スクリプトを作成しました。この後、pip install をプライベート リポジトリからインストールするには、次を pip.conf に追加します。

$ cat ~/.pip/pip.conf
[global]
extra-index-url = https://username:password@pypi.example.com/simple/

これは私にとってはうまくいきますが、pypi.python.org などのインターフェイスがあればよかったのですが、ユーザーがアクセスできるモジュールを制限することもできます。したがって、誰かがこのように機能する既存のpypiサーバーソフトウェアを使用してソリューションをセットアップした場合、私はまだ興味があります.

于 2013-02-02T13:12:41.217 に答える