最近、インターネット上でかなりの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パッケージはオプションではありません。