0

setup.py を構成してから、easy_install を介して卵をインストールして、ある種のテンプレートを実行したり、ソース ファイルの 1 つにバージョン番号を挿入したりできますか? いくつかのものを実行するにはバージョン番号が必要なので、このバージョン番号をソースファイルの1つに入れたいと思っていversion = os.environ.get('BUILD_NUMBER', 0.1)ます。setup.pyこれをハード コードしない理由は、新しいビルドがあるたびにバージョン番号が変わるためです。

このバージョン/ビルド番号を、Python ファイルではなく、ランナー スクリプトに挿入したいと考えています。このランナー スクリプトは、easy_install によって /usr/local/bin に送信されます。

4

1 に答える 1

2

ビルド ツールが既にビルド番号を生成している場合、プロジェクトのテンプレート version.py に入力しないのはなぜですか?

  • project/
    • project/__init__.py
    • project/version.py

version.py は単に次のとおりです。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__all__ = ('__version__',)
__version__ = $BUILD_NUMBER

このようにして、いつでも利用でき、setup.py メタデータなどに依存しません。setup.py スクリプトについては、次のようにしてみてください。

def get_version():
    """
    Gets the latest version number out of the package,
    saving us from maintaining it in multiple places.
    """
    local_results = {}
    execfile('project/version.py', {}, local_results)
    return local_results['__version__']

setup(
    name="Project",
    version=get_version(),
    ...
)
于 2013-11-11T19:21:53.903 に答える