2016-04-25 12 views
3

data_filesetup.pyプロジェクトに追加しようとしています。 setup.py build(setuptools)のdata_filesのフォルダ

from setuptools import setup, find_packages 
import os 

packages = find_packages("src") 
foo_path = os.path.dirname(os.path.abspath(__file__)) + '/foo.dat' 
print foo_path # file exists and there full absolute path is printed: 
       # '/home/loom/myapp/foo.dat' 

setup(name='myapp', 
     version='0.2.0', 
     url='http://loom.st', 
     author='Loom', 
     author_email='[email protected]', 
     package_dir={'': 'src'}, 
     packages=packages, 
     py_modules=['my_start'], 
# 1.  data_files=[('lib/python', [foo_path])], 
# 2.  data_files=[('lib/python', [/tmp/foo.dat])], 
     setup_cfg=True, 
     ) 

ライン1.がコメント解除されている

が、その後、 python setup.py bdist_rpmはメッセージで失敗しました:私は /tmp/ディレクトリからファイルを使用することができ、およびスクリプトの現在のディレクトリから、それを使用することはできません

running install_data 
error: can't copy '/home/loom/myapp/build/bdist.linux-x86_64/rpm/BUILD/myapp-0.2.0/foo.dat': doesn't exist or not a regular file 
error: Bad exit status from /var/tmp/rpm-tmp.02mmV8 (%install) 

ライン2.コンパイルが完了してOKを完了し、foo.datを含む(ファイル/tmp/foo.datが存在する)

なぜ行1.はエラーを誘発し、それを避ける方法は?

+0

Windowsまたは* nixで作業していますか? '/ home/loom/myapp/foo.dat /'の末尾の '/'を削除してください。 '/ tmp/foo.dat'の中ではファイルではなく、ディレクトリと思われます。 – linusg

+0

@linusg - 私は作業中です。 * nixと 'tmp'はルートディレクトリにあり、'/tmp/foo.dat'ファイルが存在します。私は質問を展開するよ、ありがとう – Loom

+0

ああ、ありがとう。私のコメントに追加したものを試してください。 – linusg

答えて

0

問題ここでは、あなたがfoo.datに間違ったパスを与えてくれた、それはディレクトリとして与えられていますことを、次のとおりです。

/home/loom/myapp/foo.dat/

だけ末尾に/を削除し、それがファイルへのパスです。

/home/loom/myapp/foo.dat

ファイルが実際に存在する場合は、すべて正常になります。

+0

申し訳ありません。私の問題は、私が修正したタイプミスでした。残念ながら、フォルダの問題はまだここにあります。 – Loom

+0

おっと、もう一度それを見てみましょう! – linusg