6

配布できるように、Python プロジェクトの setup.py ファイルを作成しています。目的は最終的に .egg ファイルを作成することですが、最初に distutils と通常の .zip で動作するようにしようとしています。

これはEclipse pydevプロジェクトで、私のファイル構造は次のようなものです:

ProjectName
   src
      somePackage
         module1.py
         module2.py
         ...
   config
      propsFile1.ini
      propsFile2.ini
      propsFile3.ini
   setup.py

これまでの setup.py コードは次のとおりです。

from distutils.core import setup

setup(name='ProjectName', 
      version='1.0', 
      packages=['somePackage'],
      data_files = [('config', ['..\config\propsFile1.ini', 
                                '..\config\propsFile2.ini', 
                                '..\config\propsFile3.ini'])]
      )

これを (コマンド ライン パラメータとして sdist を使用して) 実行すると、すべての python ファイルを含む .zip ファイルが生成されますが、構成ファイルは含まれません。私はこのコードだと思った:

 data_files = [('config', ['..\config\propsFile1.ini', 
                                    '..\config\propsFile2.ini', 
                                    '..\config\propsFile3.ini'])]

これら 3 つの指定された構成ファイルを zip ディストリビューションの「config」ディレクトリにコピーする必要があることを示します。このコードが何も達成しないのはなぜですか? 私は何を間違っていますか?

(構成ファイルのパスをいじってみました...しかし、何も役に立たないようです。パスが正しくない/ファイルが見つからない場合、Pythonはエラーまたは警告をスローしますか?)

4

4 に答える 4

6

MANIFEST.in次のようなファイルを作成します。

include config\*

(編集) 詳細については、こちらを参照してください: http://docs.python.org/distutils/sourcedist.html#specifying-the-files-to-distribute

于 2010-06-03T14:56:09.663 に答える
1

configディレクトリ全体をsrcフォルダーに移動することで、最終的にこれが機能するようになりました。これは私のパスがオフになっていることを意味しているに違いありません...しかし、ディレクトリをバックアップする方法を見つけることができなかったように見えるので (「..\」は違いを生みませんでした)、私はこの解決策に固執するつもりです今のところ。

于 2010-06-03T18:10:46.097 に答える
0

ファイル名のバックスラッシュをエスケープする必要があると思います。たとえば、の代わりに'..\config\whatever'、を書く'..\\config\\whatever'か、生の文字列構文を使用しますr'..\config\whatever'

于 2010-06-03T15:58:05.933 に答える