2011-01-16 13 views
2

--helpや--versionのようなコマンドライン引数で呼び出されたときに、プログラム名、バージョン番号、作成者を出力するpythonスクリプトがあります。現在、この情報はPythonスクリプト自体にハードコードされています。しかし、私はdistutilsを使ってアプリケーションをビルド/パッケージ化するので、この情報はすべてsetup.pyにすでに存在しています。 DistutilsにビルドされたPythonスクリプトにバージョンや著者名/電子メールなどのメタデータを書き込ませることができるので、このデータをsetup.pyファイルで管理する必要がありますか?あるいは、そのようなものを扱うための別の標準的なメカニズムがありますか?配布時にPythonスクリプトのシンボルを置き換えます。

答えて

3

これは逆です。バージョン番号、著者名、およびスクリプトに必要なその他のメタデータをスクリプト自体に追加します。次にimportまたはexecfile()のスクリプトをsetup.pyとし、スクリプトに定義されているメタデータをsetup()関数の引数として使用します。

0

いつでもsedを使用できます。 sedのmanページはHereです。

窓の場合(窓を使用している場合)はHereです。通常、Linux、Unix、およびOS Xにプリインストールされています。

+0

しかし、これはピトンのdistutilsとは関係ありません。私は "./setup.py install"を実行する前に特別なコマンドを呼びたくはありません。 – kayahr

2

パッケージのルートにあるファイル__version__.pyをsetup.pyでビルドして作成し、--helpまたは--versionのバージョン情報を取得します。それはどのようにMercurialロールです。

+0

はい、これが最良の方法です。ボーナスとして、version.pyに 'version = '0.1.2''のような単純な代入しか含まれていない場合、ファイルはbashで解析することもできます。これは、必要なシェルスクリプトを実行する必要がある場合に役立ちますパッケージのバージョン番号を知っている。 – bstpierre

関連する問題