C / Pythonプロジェクトをパッケージ化するときのdistutilsを使用する理由
質問
私はPythonとCコードの両方を含むオープンソースプロジェクトを持っています。私はUbuntuの/ Debianパッケージを行うことを計画していますので、私は、私のためにdistutilsのための任意の使用があることを思ったんだけど。 Cコードは、私はPythonの拡張として使用することができたりするものではありません。 CとPythonプログラムがローカルホストを通じてTCP / IPと通信します。
だからここ一番下の行は、私はパッケージを学んでいる間、私は、Pythonの拡張としての私のCコードを使用することができないので、のdistutilsの使用特定のファイルのみを私はもっと混乱して作るんですか?それとも私はより良いパッケージング概念を理解できるようにするには、別のプロジェクトに私のCとPythonの機能を分割する必要がありますか?
解決
のdistutilsは、エンドユーザプログラムをインストールするために使用することができますが、Pythonライブラリのためにそれを使用しているとき、それはソースパッケージを作成しても、正しい場所にそれらをインストールすることができますよう、それは、最も便利です。そのために私はそれは、多かれ少なかれ必要だと言うでしょう。
しかし、あなたはPythonのsite-packagesディレクトリに任意のコードをインストールする必要はありません、あなたが配置する必要がないので、あなたも、使用またはものは何でもあなたが好きとに使用されていることができ、エンドユーザーのPythonプログラムについてあなたは、PyPIへのコードと、それは他のPythonコードからアクセスできるようにする必要はありません。
私はdistutilsのは、他のツールに比べて、エンドユーザプログラムをインストールして使用するためにどちらも、多かれ少なかれ複雑になることはありませうとは思いません。カートマンが言っていたような全てのインストール/パッケージングツールは、ヘラ・複雑です。
他のヒント
これは、統一python setup.py install
コマンドを使用しているので? distutilsの、またはsetuptoolsの?何であれ、ちょうどそれらのいずれかを使用します。
開発のために、それはまた、本当に便利です。限り、それは標準のPython /基本的なシステムライブラリのものだとして、setup.py
はあなたのためにそれを見つける必要があります。 setup.py
を使用すると、巨大なのMakefileを作成するために、もう./configure
ものや醜いautotoolsのを必要としません。 はそれだけで動作します。の(TM)