質問: distribute、distutils、setuptools、およびdistutils2の違いは? 状況私はオープンソースのライブラリをpython 3に移植しようとしています。( sympy 、誰かが疑問に思っているなら)そのため、python 3用にビルドするときは2to3を自動的に実行する必要があります。そのためにはdistributeを使用する必要があります。したがって、(doctestによると)現在のシステムをdistutilsに移植する必要があります。問題残念ながら、これらのモジュール、distutils、distribute、setuptoolsの違いが何であるかはわかりません。これらの文書はすべて互いに分岐しているように見え、ほとんどの状況で互換性があるように意図されている(しかし実際にはすべてではない)など、最もわかりやすくなっています。質問誰かが違いを説明できますか?何を使うべきですか?最も近代的な解決策は何ですか? (余談ですが、distributeへの移植に関するガイドもお寄せいただきありがとうございますが、それは質問の範囲を超えたちょっとした作業です...)
回答: 幸いなことにpythonのパッケージングの混乱がcontinuumの " conda "パッケージマネージャによって大いに片付けられた2014年後半にこの質問を更新しました。特に、condaはconda " environment "の作成をすぐに可能にします。あなたはあなたの環境を異なるバージョンのpythonで設定することができます。例えば:conda create -n py34 python=3.4 anacondaconda create -n py26 python=2.6 anacondapythonのバージョンが異なる2つの( "py34"または "py26")python環境を作成します。その後、次のようにして特定のバージョンのpythonで環境を起動できます。source activate <env name>この機能は、異なるバージョンのpythonを扱わなければならない場合に特に役立ちます。さらに、condaには以下の機能があります。 pythonにとらわれない クロスプラットフォーム 管理者権限は必要ありません スマートな依存関係管理(satソルバーによる) c、fortran、システムレベルのライブラリをうまく扱えます。 あなたが科学コンピューティングの分野にいる場合、この最後の点は特に重要です。