尝试将我的应用程序推送到heroku时,出现此错误FileNotFoundError:[Errno 2]没有此类文件或目录:'/ app / gettingstarted / media' [英] Trying to push my app to heroku gives me this error FileNotFoundError: [Errno 2] No such file or directory: '/app/gettingstarted/media'

查看:59
本文介绍了尝试将我的应用程序推送到heroku时,出现此错误FileNotFoundError:[Errno 2]没有此类文件或目录:'/ app / gettingstarted / media'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在尝试推送我的应用程序时,出现以下错误

While trying to push my app I get the follwing error

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

但是确实存在,这使我感到困惑。

But it does exist which confuses me.My file structure that leads to it is this

src / gettingstarted / media

src/gettingstarted/media

媒体是空目录。昨晚我的努力一直在起作用。这是我运行git push heroku master的结果。

Media is an empty directory. My pushes were working just last night. Heres the result of me running 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:  !     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'

在这里阅读一篇文章后,我运行了

after reading a post on here I ran this

 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:OABELzntZhcJwAIaqTlsI-mwWl@ec2-54-235-93-178.compute-1.amazonaws.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个月后会发生什么,所以我不确定。

not really sure what's going on as I'm about 4 months in to django. Any help or guidance would be appreciated

不确定白噪声是否是造成这种情况的原因。我对此表示怀疑。但是这里是我的settings.py文件

not sure if whitenoise is causing this. I doubt it. But heres my settings.py file

    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'

我的入门指南/urls.py

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


推荐答案

我认为这里的问题是git不会跟踪空目录,它们需要至少包含一个文件,以便git查看它们,因此尽管您的 media 目录在本地存在,在Heroku中不存在。一种常见的处理方法是在目录中创建一个名为 .keep 的空文件。

I think the issue here is that git doesn't track empty directories, they need to contain at least one file for git to "see" them, so although your media directory exists locally it doesn't exist on Heroku. A common way of handling this is to create an empty file called .keep in the directory.

这篇关于尝试将我的应用程序推送到heroku时,出现此错误FileNotFoundError:[Errno 2]没有此类文件或目录:'/ app / gettingstarted / media'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆