2016-04-06 4 views
1

Bei dem Versuch, meine app Ich erhalte die follwing FehlerVersuch, meine App Heroku gibt mir diesen Fehler FileNotFoundError zu drücken: [Errno 2] Datei oder Verzeichnis: ‚/ app/getting/media‘

FileNotFoundError: [Errno 2] No such file or directory: '/app/gettingstarted/media' 
zu schieben

Aber es gibt, die verwirrt me.My Dateistruktur, die führt dazu, dies ist

src/getting/Medien

Media ist ein leeres Verzeichnis. Meine Stöße arbeiteten gerade letzte Nacht. Heres das Ergebnis von mir git push laufen Heroku

meistern
Counting objects: 13, done. 
    Delta compression using up to 4 threads. 
    Compressing objects: 100% (12/12), done. 
    Writing objects: 100% (13/13), 670.50 KiB | 0 bytes/s, done. 
    Total 13 (delta 9), reused 0 (delta 0) 
    remote: Compressing source files... done. 
    remote: Building source: 
    remote: 
    remote: -----> Using set buildpack heroku/python 
    remote: -----> Python app detected 
    remote:  $ pip install -r requirements.txt 
    remote: 
    remote:  $ python manage.py collectstatic --noinput 
    remote:  Traceback (most recent call last): 
    remote:   File "manage.py", line 10, in <module> 
    remote:   execute_from_command_line(sys.argv) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
    remote:   utility.execute() 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute 
    remote:   self.fetch_command(subcommand).run_from_argv(self.argv) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv 
    remote:   self.execute(*args, **cmd_options) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute 
    remote:   output = self.handle(*args, **options) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 176, in handle 
    remote:   collected = self.collect() 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 98, in collect 
    remote:   for path, storage in finder.list(self.ignore_patterns): 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/finders.py", line 112, in list 
    remote:   for path in utils.get_files(storage, ignore_patterns): 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/utils.py", line 28, in get_files 
    remote:   directories, files = storage.listdir(location) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/files/storage.py", line 299, in listdir 
    remote:   for entry in os.listdir(path): 
    remote:  FileNotFoundError: [Errno 2] No such file or directory: '/app/gettingstarted/media' 
    remote: 
    remote: !  Error while running '$ python manage.py collectstatic --noinput'. 
    remote:  See traceback above for details. 
    remote: 
    remote:  You may need to update application code to resolve this error. 
    remote:  Or, you can disable collectstatic for this application: 
    remote: 
    remote:   $ heroku config:set DISABLE_COLLECTSTATIC=1 
    remote: 
    remote:  https://devcenter.heroku.com/articles/django-assets 
    remote: 
    remote: !  Push rejected, failed to compile Python app 
    remote: 
    remote: Verifying deploy... 
    remote: 
    remote: !  Push rejected to hispanicheights. 
    remote: 
    To https://git.heroku.com/hispanicheights.git 
    ! [remote rejected] master -> master (pre-receive hook declined) 
    error: failed to push some refs to 'https://git.heroku.com/hispanicheights.git' 

nach hier einen Beitrag zu lesen lief ich diesen

heroku config:set DEBUG_COLLECTSTATIC=1 

und bekam die folgende Ausgabe

 Setting config vars and restarting hispanicheights... done 
    DEBUG_COLLECTSTATIC: 1 
    (practice) apples-MacBook-Pro:src ray$ git push heroku master 
    Counting objects: 13, done. 
    Delta compression using up to 4 threads. 
    Compressing objects: 100% (12/12), done. 
    Writing objects: 100% (13/13), 670.50 KiB | 0 bytes/s, done. 
    Total 13 (delta 9), reused 0 (delta 0) 
    remote: Compressing source files... done. 
    remote: Building source: 
    remote: 
    remote: -----> Using set buildpack heroku/python 
    remote: -----> Python app detected 
    remote:  $ pip install -r requirements.txt 
    remote: 
    remote:  $ python manage.py collectstatic --noinput 
    remote:  Traceback (most recent call last): 
    remote:   File "manage.py", line 10, in <module> 
    remote:   execute_from_command_line(sys.argv) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
    remote:   utility.execute() 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute 
    remote:   self.fetch_command(subcommand).run_from_argv(self.argv) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv 
    remote:   self.execute(*args, **cmd_options) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute 
    remote:   output = self.handle(*args, **options) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 176, in handle 
    remote:   collected = self.collect() 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 98, in collect 
    remote:   for path, storage in finder.list(self.ignore_patterns): 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/finders.py", line 112, in list 
    remote:   for path in utils.get_files(storage, ignore_patterns): 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/contrib/staticfiles/utils.py", line 28, in get_files 
    remote:   directories, files = storage.listdir(location) 
    remote:   File "/app/.heroku/python/lib/python3.5/site-packages/django/core/files/storage.py", line 299, in listdir 
    remote:   for entry in os.listdir(path): 
    remote:  FileNotFoundError: [Errno 2] No such file or directory: '/app/gettingstarted/media' 
    remote: 
    remote: !  Error while running '$ python manage.py collectstatic --noinput'. 
    remote:  See traceback above for details. 
    remote: 
    remote:  You may need to update application code to resolve this error. 
    remote:  Or, you can disable collectstatic for this application: 
    remote: 
    remote:   $ heroku config:set DISABLE_COLLECTSTATIC=1 
    remote: 
    remote:  https://devcenter.heroku.com/articles/django-assets 
    remote: 
    remote: ****** Collectstatic environment variables: 
    remote: 
    remote:  CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/vendor/include:/app/.heroku/python/include: 
    remote:  SOURCE_VERSION=68adc8ed3bbefc420568ec683846e0c2c2a51908 
    remote:  PROFILE_PATH=/app/.profile.d/python.sh 
    remote:  DEBUG_COLLECTSTATIC=1 
    remote:  LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/vendor/lib:/app/.heroku/python/lib: 
    remote:  CACHE_DIR=/app/tmp/cache 
    remote:  PYTHONUNBUFFERED=1 
    remote:  PYHONHOME=/app/.heroku/python 
    remote:  LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/vendor/lib:/app/.heroku/python/lib: 
    remote:  BIN_DIR=/app/tmp/buildpacks/python/bin 
    remote:  PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin::/usr/local/bin:/app/bin:/app/vendor/bundle/bin:/app/vendor/bundle/ruby/2.3.0/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/vendor/bin:/app/tmp/buildpacks/python/vendor/bpwatch:/app/tmp/buildpacks/python/vendor/pip-pop 
    remote:  RECOMMENDED_PYTHON_VERSION=python-2.7.11 
    remote:  C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/vendor/include:/app/.heroku/python/include: 
    remote:  PWD=/app 
    remote:  LOG_FILE=/tmp/fifo20160406-3-8wj7yc 
    remote:  LANG=en_US.UTF-8 
    remote:  STACK=cedar-14 
    remote:  TIMES=2 
    remote:  SHLVL=3 
    remote:  REQUEST_ID=327705f8-1028-4375-912a-f6abb15a9cb4 
    remote:  HOME=/app 
    remote:  BPWATCH_STORE_PATH=/app/tmp/cache/bpwatch.json 
    remote:  PYTHONPATH=/app/ 
    remote:  BUILD_DIR=/app 
    remote:  WARNINGS_LOG=/tmp/tmp.EFU8JTKPZD 
    remote:  USER_LOG_FILE=/tmp/fifo20160406-3-12ib9mh 
    remote:  PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkgconfig:/app/.heroku/vendor/lib/pkgconfig:/app/.heroku/vendor/lib/pkg-config:/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config: 
    remote:  DATABASE_URL=postgres://vzeteghnhlwrjq:[email protected].com:5432/d230us01stas97 
    remote:  _=/usr/bin/env 
    remote: 
    remote: !  Push rejected, failed to compile Python app 
    remote: 
    remote: Verifying deploy... 
    remote: 
    remote: !  Push rejected to hispanicheights. 
    remote: 
    To https://git.heroku.com/hispanicheights.git 
    ! [remote rejected] master -> master (pre-receive hook declined) 
    error: failed to push some refs to 'https://git.heroku.com/hispanicheights.git' 

nicht wirklich sicher, was los ist Ich bin etwa 4 Monate in Django. Jede Hilfe oder Anleitung würde geschätzt werden

nicht sicher, ob Whitenoise dies verursacht. Ich bezweifle das. Aber here meine settings.py Datei

MIDDLEWARE_CLASSES = (
     'django.contrib.sessions.middleware.SessionMiddleware', 
     'django.middleware.common.CommonMiddleware', 
     'django.middleware.csrf.CsrfViewMiddleware', 
     'django.contrib.auth.middleware.AuthenticationMiddleware', 
     'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
     'django.contrib.messages.middleware.MessageMiddleware', 
     'django.middleware.clickjacking.XFrameOptionsMiddleware', 
     'django.middleware.security.SecurityMiddleware', 
     'whitenoise.middleware.WhiteNoiseMiddleware', 
    ) 

    ROOT_URLCONF = 'gettingstarted.urls' 


     STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles') 
    STATIC_URL = '/static/' 

    MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media_cdn') 
    MEDIA_URL = '/media/' 

    # Extra places for collectstatic to find static files. 
    STATICFILES_DIRS = (
     os.path.join(PROJECT_ROOT, 'static'), 
     os.path.join(PROJECT_ROOT, 'media'), 
    ) 

    # Simplified static file serving. 
    # https://warehouse.python.org/project/whitenoise/ 
    STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

meine getting/urls.py

 urlpatterns = [ 
     url(r'^admin/', include(admin.site.urls)), 
     url(r'^blog/', include('hello.urls', namespace='blog', app_name='blog')), 
     url(r'^db', hello.views.db, name='db'), 
     url(r'^', include('hello.urls')), # hello corresponds to the hello module in installed apps 
    ] 

    if settings.DEBUG: 
     urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
     urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

Antwort

2

denke ich, das Problem hier ist, dass git nicht leere Verzeichnisse nicht verfolgen, müssen sie zumindest enthalten, eine Datei damit git sie "sieht", obwohl Ihr media Verzeichnis lokal existiert, existiert es nicht auf Heroku. Eine übliche Methode, dies zu umgehen, besteht darin, im Verzeichnis eine leere Datei namens .keep anzulegen.

+0

das war es. Ich habe die .keep-Datei hinzugefügt. Ich entfernte es dann, um sicherzustellen, dass es kein Zufall war, dass es nicht funktionierte. Ich habe es wieder hinzugefügt und es funktioniert. Vielen Dank – losee

Verwandte Themen