9

私はPythonで書かれたオープンソースプロジェクト(Remix、ソースはそこにあります)を管理しています。ユーザーにpythonsetup.pyinstallを実行してソフトウェアをインストールするようにお願いします。最近、コンパイルされたC ++パッケージを追加しました(SoundTouchのポート-ソースのtrunk / externalsに移動して表示します)。ベースのRemixライブラリをインストールするsetup.pyファイルに、pysoundtouch14ライブラリもインストールする必要があります。

ただし、ユーザーがシステムにgccまたはmsvcツールチェーンを持っている必要はありません。一般的なプラットフォーム(linux-i386、windows、mac 10.5および10.6)用にバイナリをプリコンパイルしました。trunk/ externals / pysoundtouch14/buildにアクセスしてそれらを確認してください。gccまたはmsvcがインストールされていないユーザーが、pysoundtouch14のsetup.pyを実行するだけで、ビルド済みのバイナリの存在を検出し、それらを適切な場所(/Library/Python/2.5/site-packages)にコピーできることを期待していました。 、たとえば。)しかし、それは起こりません。たとえば、新しい10.5システムでは、インストールする必要のある.soがすでにbuild /フォルダーにビルドされているにもかかわらず、setup.pyはgccがインストールされていないことを通知します。

だから私は2つの直接的な質問があります:

  • ビルドシステムを必要とせずに、プラットフォームに応じて、セットアップ済みの.soファイルと.pydファイルを適切な場所に自動的に「インストール」するようにsetup.pyを取得するにはどうすればよいですか?
  • あるsetup.py(メインのsetup.pyファイル)が別の付属パッケージ(pysoundtouch14のsetup.py)のsetup.pyを実行するにはどうすればよいですか?

4

2 に答える 2

1

残念ながら、installコマンドをオーバーライドするのが良い方法だと思います。

これは、カスタム配布コマンドを使用して簡単に実行できます。たとえば、[1] http://svn.zope.org/Zope/branches/2.9/setup.py?rev=69978&view=autoを参照してください。

于 2009-06-16T21:55:44.170 に答える
1

最初の質問は、マルチプラットフォームの要件を考えると難しい質問です。Windowsだけの場合は、インストール後のスクリプトオプションを使用して、ライブラリを処理するスクリプトを実行するか、NSISなどのPython以外のツールを使用できます。アルマドの提案以外に何ができるかわかりません。

2番目の質問については、 Paverを調べてください。

于 2009-06-17T16:24:01.437 に答える