21

最近、インターネット上でかなりのsetuptoolsがバッシングしているのを見てきました。最近、私はJamesBennettのOnpackagingの投稿を読んで、なぜ誰もsetuptoolsを使用すべきではないのかについて説明しました。Freenodeの#pythonで過ごした時から、絶対にそれを嫌う魂が数人いることを知っています。私はそれらの中に自分自身を数えますが、私は実際にそれを使用します。

私はその欠陥を認識するのに十分なプロジェクトにsetuptoolsを使用しましたが、もっと良いものを好みます。私は特にeggフォーマットとそれがどのように展開されるかが好きではありません。setuptoolsのすべての問題で、私はより良い代替手段を見つけられませんでした。

pipのようなツールについての私の理解は、それがeasy_installの置き換え(setuptoolsではない)であることを意図しているということです。実際、pipはいくつかのsetuptoolsコンポーネントを使用していますよね?

私のパッケージのほとんどは、すべての依存関係を宣言するsetuptools対応のsetup.pyを利用しています。準備ができたら、sdist、bdist、bdist_eggを作成し、それらをpypiにアップロードします。

pipの使用に切り替えたい場合、easy_installの依存関係を取り除くためにどのような変更を加える必要がありますか?依存関係はどこで宣言されていますか?私は、egg形式の使用をやめ、ソース配布のみを提供する必要があると推測しています。もしそうなら、どうすればegg-infoディレクトリを生成できますか?または私もする必要がありますか?

これにより、virtualenvの使用法はどのように変わりますか?virtualenvはeasy_installを使用して環境を管理しませんか?

これにより、setuptoolsが提供する「develop」コマンドの使用法がどのように変わりますか?私はそれを使うべきではありませんか?代替手段は何ですか?

私は基本的に、開発ワークフローがどのようになるかを把握しようとしています。

誰かがそれを提案する前に、私はOSに依存する解決策を探していません。私は主にdebianlinuxに関心がありますが、Ian Bickingがここで概説している理由から、debパッケージはオプションではありません。

4

3 に答える 3

2

まず、pip は本当に新しいものです。新しく、不完全で、現実の世界ではほとんどテストされていません。

これは非常に有望ですが、easy_install/setuptools が実行できるすべてのことを実行できるようになるまでは、大々的に普及する可能性は低いでしょう。

Easy_install/setuptools は大きくて複雑です - そしてそれは多くの人々を怒らせます。残念ながら、その複雑さには本当に正当な理由があります。それは、膨大な数の異なるユースケースに対応しているということです。私自身は、デスクトップ ユーザーの大規模な (> 300) プールと、頻繁に更新されるアプリケーションを含む同様のサイズのグリッドをサポートしています。すべてのユーザーがソースからインストールできるようにすることでこれを実現できるという考えはばかげています。卵は私のプロジェクトを配布するための信頼できる方法であることが証明されています。

私のアドバイス: setuptools の使い方を学びましょう。これは本当にすばらしいことです。それを嫌う人のほとんどは、それを理解していないか、単にフル機能の配布システムとしてのユースケースを持っていません.

:-)

于 2008-12-15T18:24:26.417 に答える