2016-04-25 6 views
3

Ich versuche data_file zu setup.py Projekt hinzufügen. Ich kann Datei aus /tmp/ Verzeichnis, und kann es nicht aus aktuellem Verzeichnis des Skripts verwenden:Ordner für data_files in setup.py build (setuptools)

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, 
     ) 

Wenn die Leitung 1. unkommentiert ist, dann python setup.py bdist_rpm mit folgenden Meldung fehlgeschlagen:

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) 

Wenn die Leitung 2. ist unkommentiert, dann ist der Build abgeschlossen und enthält foo.dat (Datei /tmp/foo.dat existiert)

Warum die Zeile 1. induziert Fehler und wie man es vermeidet?

+0

Arbeiten Sie unter Windows oder * nix? Versuchen Sie, das nachstehende '/' in '/ home/loom/myapp/foo.dat /' zu entfernen, während es sich in '/ tmp/foo.dat' um eine Datei handelt und nicht um ein Verzeichnis – linusg

+0

@linusg - an dem ich gerade arbeite * nix und 'tmp' befinden sich im Wurzelverzeichnis und die Datei'/tmp/foo.dat' existiert. Ich werde Frage erweitern, danke – Loom

+0

Ah OK, danke. Probier was ich meinem Kommentar hinzugefügt habe bitte. – linusg

Antwort

0

Das Problem hierbei ist, dass Sie den falschen Weg zu foo.dat gegeben haben, es als ein Verzeichnis angegeben ist:

/home/loom/myapp/foo.dat/

einfach die hinteren / am Ende zu entfernen, so ist es ein Pfad zu einer Datei ist:

/home/loom/myapp/foo.dat

Wenn die Datei wirklich existiert, sollte alles in Ordnung sein.

+0

Entschuldigung. Es war ein Tippfehler in meiner Frage, die ich behoben habe. Leider ist das Problem mit dem Ordner immer noch hier. – Loom

+0

Ups, wir werden es noch einmal anschauen! – linusg

Verwandte Themen