2016-04-06 32 views
1

雖然試圖把我的應用程序,我得到follwing錯誤試圖把我的應用程序的Heroku給我這個錯誤FileNotFoundError:[錯誤2]沒有這樣的文件或目錄:「/應用/ gettingstarted /使用媒體」

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

但它確實存在,其迷惑,導致正是這種

的src/gettingstarted /使用媒體

Media是一個空目錄me.My文件結構。我的推動只是在昨晚工作。繼承人運行git推我的結果Heroku的掌握

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' 

閱讀上的一則訊息後,我跑這

heroku config:set DEBUG_COLLECTSTATIC=1 

,得到了下面的輸出

 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' 

真的不知道這是怎麼回事因爲我約4個月到Django。任何幫助或指導,將不勝感激

不知道是否whitenoise造成這一點。我對此表示懷疑。但是我的繼承人settings.py文件

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' 

我gettingstarted/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) 

回答

2

我覺得這裏的問題是,Git並不跟蹤空目錄,他們必須至少包含一個文件讓git「看」它們,所以儘管你的media目錄本地存在,但它在Heroku上不存在。處理這個問題的常用方法是在目錄中創建一個名爲.keep的空文件。

+0

就是這樣。我添加了.keep文件。然後我刪除它,以確保它不是一個僥倖,它不工作。我加回來了,它可以工作。謝謝 – losee

相關問題