2016-05-24 5 views
0

私の現在のプロジェクトはPythonで書かれています。ビルドパッケージ生成+ユニットテストの実行では、私はPybuilderユーティリティを使用しています。それはかなりクールです。私は他のシステムにモジュールを取り付けるためにホイールディストリビューションを使用しました。Pybuilder - 非Pythonファイルはパッケージ化されていません

アプリケーションによって特定の設定が読み取られる設定ファイルがあります。 settings.iniファイルは、次のパスにあります。

PROJECT-ROOT 
    |---- src 
      |-main 
       |-python 
        |- foo 
         |- conf 
         | |- settings.ini 
         | 
         |-test.py 
         |-access.py 

pybuilderは、build.pyスクリプトからsetup.pyを自動的に作成します。問題は、バイナリホイール配布が非pythonファイル(* .iniファイル)をパッケージ化していないことです。 SOの投稿を検索中、MANIFEST.mfを追加するなどの情報があれば、この問題は解決します。

project._manifest_include_directory('foo/conf', ('*.ini',)) 

を添加しながら、それだけでbdist(ホイール)にfoo/conf/settings.ini sdistのではなく更新します。 I conf /ディレクトリにホイールファイルにsettings.iniを含めるようにします。グーグルで、setup.pyにpackage_dataフィールドを追加すると、この問題が解決されます。しかし、Pybuilderのbuild.pyでは、これをうまく実行できません。

この問題を解決するお手伝いができますか?

答えて

2

私は、githubのPyBuilderコードの貢献者の1人であるMax(https://github.com/mriehl)に電子メールを送りました。彼はproject.install_file()オプションを試してみるように勧めました。

私はそのオプションを試してみて、それは私のために働いた。マックスに感謝します。私はこのスレッドでその情報を共有したいので、将来誰かに役立つでしょう!背景project.install_file()

setup.pyのdistutilsのdata_files一部を変更しています。次のようにbuild.py

私の構成は、

@init 
def initialize (project): 

    # File is installed relative to sys.prefix 
    project.install_file("Lib/site-packages/foo/conf","foo/conf/settings.ini") 
です
関連する問題