70

2か月前に初めてPyPiにパッケージを配置し、それ以来いくつかのバージョン更新を行っています。今週、ダウンロード数の記録に気づき、何百回もダウンロードされていることに驚きました。次の数日間で、これはニッチな統計テスト ツールボックスであるにもかかわらず、ダウンロード数が1 日に数百も増加するのを見てさらに驚きました。特に、古いバージョンのパッケージは引き続きダウンロードされており、最新バージョンよりも高い速度でダウンロードされることがあります。

ここで何が起こっているのですか?

PyPi のダウンロード カウントにバグがあるのでしょうか、それとも (私のように) オープン ソース コードを取得するクローラーが大量にあるのでしょうか?

4

4 に答える 4

78

これは、現時点では古い質問のようなものですが、PyPI にあるパッケージについて同じことに気付き、さらに調査しました。PyPI は、かなり詳細なダウンロード統計を保持していることがわかりました。これには(明らかにわずかに匿名化されています) ユーザー エージェントが含まれます。このことから、私のパッケージをダウンロードするほとんどの人は、「z3c.pypimirror/1.0.15.1」や「pep381client/1.5」のようなものであることがわかりました。(PEP 381 は、PyPI のミラーリング インフラストラクチャについて説明しています。)

最初にそれらすべてを含め、次に最も明白なボットを除外して、すべてを集計する簡単なスクリプトを作成しました。私のパッケージのダウンロード アクティビティの文字通り 99%がミラーボットによって引き起こされたことがわかりました。ボットがフィルタリングされた場合、ダウンロードは 146 回のみです。そして、それは非常に明白なものを除外しているだけなので、おそらくまだ過大評価です.

PyPI にミラーが必要な主な理由は、ミラーがあるからだと思われます。

于 2013-02-06T10:05:29.630 に答える
11

ケナーボンの要約声明から始める:

「PyPI にミラーが必要な主な理由は、ミラーがあるからだと思われます。」

これを少し変更します。

それは、PyPI が実際に動作する方法である可能性があり、したがってミラーリングする必要があるため、実際のトラフィックに追加のビット (または 2 つ :-) を与える可能性があります。

現時点では、リポジトリで何を更新するかを知るために、メイン インデックスを操作する必要があると思います。パブリックにアクセス可能なフォルダー階層のタイムスタンプを介して、状態に簡単にアクセスできるわけではありません。したがって、悪い点は、rsync が方程式から外れていることです。良いことは、JSON、OAuth、XML-RPC、または HTTP インターフェイスを介してインデックスと通信できることです。

XML-RPC の場合:

$> python
>>> import xmlrpclib
>>> import pprint
>>> client = xmlrpclib.ServerProxy('http://pypi.python.org/pypi')
>>> client.package_releases('PartitionSets')
['0.1.1']

JSON の例:

$> curl https://pypi.python.org/pypi/PartitionSets/0.1.1/json

約ある場合。30.000 個のパッケージがホストされ [ 1 ]、一部は週に 50.000 ~ 300.000 回ダウンロードされます [ 2 ] (distribute、pip、requests、paramiko、lxml、boto、paramike、redis など)。少なくともアクセシビリティの観点からは、ミラーが本当に必要です。pip install NeedThisPackage失敗したときにユーザーが何をするか想像してみてください。また、会社全体の PyPI ミラーは、他の方法ではルーティングできないネットワークのプロキシとして機能するのが非常に一般的です。最後に、virtualenv と友人によって有効になった素晴らしいマルチ バージョン チェックを忘れないでください。これらはすべて、IMO の正当なパッケージの潜在的に素晴らしい用途です ...

結局のところ、エージェントがダウンロードしたパッケージで実際に何をするかはわかりません。N 人のユーザーに実際にそれを使用させるか、次回は単に上書きさせるか...そして結局のところ、パッケージの作成者は使用の数と性質にもっと注意を払う必要があります。潜在的なユーザーの純粋な数;-)


参照: ゲストの数値は、https ://pypi.python.org/pypi (29303 パッケージ) およびhttp://pypi-ranking.info/week (週ごとの数値については、2013-03-23 を要求) からのものです。

于 2013-03-23T07:47:19.030 に答える
10

また、virtualenv の人気が高まっていることも考慮する必要があります。パッケージが多くのプロジェクトで使用されるコア ライブラリのようなものである場合、通常、パッケージは複数回ダウンロードされます。

1 人のユーザーがあなたのパッケージを使用する 5 つのプロジェクトを持ち、それぞれが独自の virtualenv に住んでいるとします。pip を使用して要件を満たすと、パッケージはこの方法で既に 5 回ダウンロードされます。次に、これらのプロジェクトは、職場、自宅、ラップトップ コンピューターなどのさまざまなマシンにセットアップされる可能性があります。さらに、Web アプリケーションの場合は、ステージング サーバーとライブ サーバーが存在する可能性があります。これを要約すると、1 人のユーザーによって多くのダウンロードが行われることになります。

考えただけで...おそらくあなたのパッケージは単に良いです. ;)

于 2012-03-10T18:46:30.777 に答える