2013-01-20 12 views
16

私はPythonパッケージを作成しようとしています、と私はこのようなディレクトリ構造を持っている:MANIFEST.in、package_data、およびdata_filesの明確化?

mypkg/ 
├── __init__.py 
├── module1 
│   ├── x.py 
│   ├── y.py 
│   └── z.txt 
└── module2 
    ├── a.py 
    └── b.py 

それから私はMANIFEST.in内のすべてのファイルを追加し、私が作成したアーカイブをチェックするとき、それはすべてのファイルを持っていました。

私がpython setup.py installdist-packages/mypkg/module1で行うとします。私はz.txtではなくPythonファイルのみを見る。

私はMANIFEST.insetup.pyの両方でz.txtを持っている:

setup (
    packages = [ 
     'mypkg', 
     'mypkg.module1', 
     'mypkg.module2', 
    ], 
    package_data = { 
     'mypkg': ['module1/z.txt'] 
    }, 
    include_package_data = True, 
    ... 
) 

私もdata_filesとしてファイルを追加しようとしたが、それは/usr/localでディレクトリを作成しました。コードがそのデータを使用しているので、ソースコードディレクトリ内に保持したいと思います。

私は以下の投稿を読んでいますが、setup.py installの後に正しい場所にz.txtを保存する正しい方法が何であるか混乱し続けます。 Installing data files into site-packages with setup.py

  • MANIFEST.in ignored on "python setup.py install" - no data files installed?
  • +0

    更新: distutils.coreの代わりにsetuptoolsを使用したときに修正されました。 setuptoolsがコードを変更せずに働いていたのに対し、distutilsはマニフェストに同意しないといくつかの問題があったと思います。 今後はsetuptoolsの使用をお勧めします。リンクを使用する[ここ] [1]。 [1]:http://peak.telecommunity.com/DevCenter/setuptools#developer-s-guide – Sourabh

    答えて

    2

    更新:distutils.coreの代わりにsetuptoolsを使用したときに修正されました。 setuptoolsがコードを変更せずに働いていたのに対し、distutilsはマニフェストに同意しないといくつかの問題があったと思います。将来はsetuptoolsを使うことをお勧めします。リンクを使用するhere : setup tools- developers guide

    11

    代わりのdistutilsのsetuptoolsのを使用してみてください。

    +0

    うん、setuptoolsが修正しました。私は自己回答できないので、質問にコメントしました。 – Sourabh