Django 应用程序部署到 Heroku,应用程序错误,

2024-06-28

我正在努力将 Django 1.10 应用程序部署到 Heroku。正如前言,我正在使用 Pycharm,并且一度不得不重命名我的项目,但它在所有地方都进行了重构并更改了名称,所以我希望这与该问题无关。当我将此网站推送到 Heroku 时,出现应用程序错误。

错误信息

在 Heroku 应用程序错误日志中,我看到:

2017-01-13T22:04:48.911324+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=secret-anchorage-68558.herokuapp.com request_id=71351a21-2264-4ca7-ad0a-1ae110d72ca7 fwd="162.247.89.174" dyno= connect= service= status=503 bytes=
2017-01-13T22:04:49.334411+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=secret-anchorage-68558.herokuapp.com request_id=bf22a256-8780-49ed-8820-c8112833121c fwd="162.247.89.174" dyno= connect= service= status=503 bytes=

它曾经在我的计算机上本地运行,但现在当我尝试运行该应用程序时,我得到:

python3 manage.py runserver

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f278bc6ea60>
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/core/management/commands/runserver.py", line 113, in inner_run
autoreload.raise_last_exception()
File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 249, in raise_last_exception
six.reraise(*_exception)
File "/usr/local/lib/python3.5/dist-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.5/dist-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.5/dist-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/usr/local/lib/python3.5/dist-packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'homelibrary.apps'

当我尝试推送到 Heroku 时:

git push heroku master

Counting objects: 308, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (122/122), done.
Writing objects: 100% (308/308), 111.03 KiB | 0 bytes/s, done.
Total 308 (delta 170), reused 308 (delta 170)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: -----> Installing python-3.5.2
remote:      $ pip install -r requirements.txt
remote:        Collecting dj-database-url==0.4.2 (from -r      /tmp/build_6409be14e6f6fb2a7cd364b66c5920b7/requirements.txt (line 1))
remote:          Downloading dj_database_url-0.4.2-py2.py3-none-any.whl
remote:        Collecting Django==1.10.5 (from -r /tmp/build_6409be14e6f6fb2a7cd364b66c5920b7/requirements.txt (line 2))
remote:          Downloading Django-1.10.5-py2.py3-none-any.whl (6.8MB)
remote:        Collecting gunicorn==19.6.0 (from -r /tmp/build_6409be14e6f6fb2a7cd364b66c5920b7/requirements.txt (line 3))
remote:          Downloading gunicorn-19.6.0-py2.py3-none-any.whl (114kB)
remote:        Collecting psycopg2==2.6.2 (from -r /tmp/build_6409be14e6f6fb2a7cd364b66c5920b7/requirements.txt (line 4))
remote:          Downloading psycopg2-2.6.2.tar.gz (376kB)
remote:        Collecting whitenoise==3.2.3 (from -r /tmp/build_6409be14e6f6fb2a7cd364b66c5920b7/requirements.txt (line 5))
remote:          Downloading whitenoise-3.2.3-py2.py3-none-any.whl
remote:        Installing collected packages: dj-database-url, Django,    gunicorn, psycopg2, whitenoise
remote:          Running setup.py install for psycopg2: started
remote:            Running setup.py install for psycopg2: finished with status 'done'
remote:        Successfully installed Django-1.10.5 dj-database-url-0.4.2 gunicorn-19.6.0 psycopg2-2.6.2 whitenoise-3.2.3
remote: 
remote:      $ python manage.py collectstatic --noinput
remote:        Traceback (most recent call last):
remote:          File "manage.py", line 22, 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 367, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/core/management/__init__.py", line 341, in execute
remote:            django.setup()
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
remote:            apps.populate(settings.INSTALLED_APPS)
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/apps/registry.py", line 85, in populate
remote:            app_config = AppConfig.create(entry)
remote:          File "/app/.heroku/python/lib/python3.5/site-packages/django/apps/config.py", line 116, in create
remote:            mod = import_module(mod_path)
remote:          File "/app/.heroku/python/lib/python3.5/importlib/__init__.py", line 126, in   import_module
remote:            return _bootstrap._gcd_import(name[level:], package, level)
remote:          File "<frozen importlib._bootstrap>", line 986, in _gcd_import
remote:          File "<frozen importlib._bootstrap>", line 969, in _find_and_load
remote:          File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
remote:        ImportError: No module named 'homelibrary.apps'
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:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy....
remote: 
remote: !   Push rejected to secret-anchorage-68558.
remote: 
To https://git.heroku.com/secret-anchorage-68558.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/secret-anchorage-68558.git'

我尝试禁用 COLLECTSTATIC

heroku config:set DISABLE_COLLECTSTATIC=0

这似乎充满希望。它允许我将我的代码推送到 Heroku,但是当我尝试

heroku run python3 manage.py migrate

or

heroku open

我遇到了与以前相同的错误,但它没有出现在网上。

项目结构

---homelibrary
   ---catalog
      ---migrations
      ---static
         ---css
         ---images
            favicon.ico
      ---templates
      __init__.py
      admin.py
      apps.py
      forms.py
      models.py
      tests.py
      urls.py
      views.py
   ---homelibrary
      __init__.py
      settings.py
      urls.py
      wsgi.py
  ---templates (for generic, cross-site forms)
  ---venv
  .gitignore.txt
  db.sqlite3
  LICENSE
  manage.py
  Procfile
  README.md
  requirements.txt
  runtime.txt

要求.txt

dj-database-url==0.4.2
Django==1.10.5
gunicorn==19.6.0
psycopg2==2.6.2
whitenoise==3.2.3

Procfile

web: gunicorn homelibrary.wsgi --log-file -

主页库/wsgi.py

import os

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "homelibrary.settings")

application = get_wsgi_application()
application = DjangoWhiteNoise(application)

主库/settings.py

import os
import dj_database_url

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'My key')

DEBUG = bool(os.environ.get('DJANGO_DEBUG', False))

ALLOWED_HOSTS = []

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'homelibrary.apps.CatalogConfig',
]

MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'homelibrary.urls'

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': ['./templates',],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

WSGI_APPLICATION = 'homelibrary.wsgi.application'

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

AUTH_PASSWORD_VALIDATORS = [
{
    'NAME':   'django.contrib.auth.password_validation.UserAttributeSimilarityValidator' ,
},
{
    'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
    'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
    'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},

]

 LANGUAGE_CODE = 'en-us'

 TIME_ZONE = 'America/New_York'

 USE_I18N = True

 USE_L10N = True

 USE_TZ = True

LOGIN_REDIRECT_URL = '/'

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)

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

有什么想法我做错了吗?


只需改变你的INSTALLED_APPS有了这个

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'catalog',
]

之后你还会面临一些更多的错误

  1. If your DEBUG生产中设置为False那么你需要改变ALLOWED_HOSTS=[] to ALLOWED_HOSTS = ['*']

  2. Add in settings.py file

    STATICFILES_STORAGE='whitenoise.django.GzipManifestStaticFilesStorage'

如果它不起作用,那么再做一件事情,看看步骤 8 和 9here. https://www.dropbox.com/s/68sc3ihna7qdaiu/test.py?dl=0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 应用程序部署到 Heroku,应用程序错误, 的相关文章

随机推荐

  • SwiftUI 显示带有绑定变量的工作表在首次显示时不起作用

    我试图在工作表中呈现一个带有 Binding String 变量的视图 该变量仅在 TextField 中显示 绑定该变量 在我的主 ContentView 中 我有一个字符串数组 我用 ForEach 循环遍历数组的索引来显示它 并显示一
  • magento - 删除扩展名?

    我购买了 magento 扩展并将文件复制到 magento 目录中 一切都很好 然后我想重新安装它 所以我删除了app code local中的所有相关文件 并删除了相关的数据库表 当我将扩展文件重新复制回 magento 目录并尝试测试
  • 如何使用java从Excel工作表中获取特定列名(作为参数传递)的最后一个非空单元格的行索引?

    模块的摘要 获取书籍名称 工作表名称和列名称作为参数 并期望模块返回所需的行索引 public int getExcelData String WBookName String sheetName String columnName int
  • RollingFileAppender 中动态文件命名的 log4net 中的问题

    我的配置文件中有 3 个附加程序 用于创建 3 种不同类型的日志 我通过设置全局上下文属性在 3 个附加程序中的每一个中使用文件的动态命名 在某些情况下 我需要为 1 个附加程序动态设置日志文件名 当我仅为 1 个附加程序设置文件名时 除了
  • HashMap元素的顺序可以重现吗?

    首先 我想澄清的是 我永远不会使用 HashMap 来做需要某种数据结构顺序的事情 并且这个问题是出于我对 Java HashMap 实现的内部细节的好奇而提出的 您可以阅读java 文档上Object http docs oracle c
  • 对低设备使用android 6.0 api 23权限(几乎像api 22)

    这是我的第一个问题 也许我会解释得有点糟糕 但好吧 看一下 我有一个使用 api 22 库的项目 但使用 android 6 0 api 23 进行编译 我想继续使用 api 22 库 但是当我使用 android 6 0 设备运行我的项目
  • 迭代最近点实现

    我目前正在使用以下伪代码在 C 中实现 ICP 算法 从 获取ICP 简报 http www math tau ac il dcor Graphics adv slides ICP ppt function ICP Scene Model
  • 简单的 Material UI 对话框示例有不需要的滚动条

    我有一个包含网格的简单 Material UI 对话框 它有一个滚动条 即使屏幕足够大以包含整个内容 也可以滚动几个像素
  • GDB 调试器问题 - 没有命名的源文件

    由于某种原因 我在调试时无法让 gdb 识别项目中的文件 我尝试了各种方法 包括下载不同的版本等 最后我做的就是用 Twilight Dragon Media 的 Bundle Package 完全覆盖所有 MingW 有谁知道如何解决这个
  • 从椭圆生成数组

    我有一个方程 它以一般形式 x 2 a 2 y 2 b 2 1 创建一个椭圆 我希望生成一个数组 其中椭圆内部的所有点都设置为 1 椭圆外部的所有点都设置为 1是零 然后这个数组将与另一个数组进行卷积 到目前为止 我已尝试创建一个大小为空的
  • 存储同步:多次删除,部分失败

    我有一个商店 用户可以使用一个删除多个记录destroy手术 现在 其中一些记录被锁定在数据库中 因为其他人正在处理它们 因此无法删除 服务器如何告诉前端Id为a b c的记录删除成功 但Id为x y z的记录无法删除 应移回存储并显示在网
  • 通过 R 中的方向矩阵进行回溯

    我有一个这样的矩阵 https i stack imgur com mzeRI png https i stack imgur com mzeRI png 你可以像这样加载它 matrix structure c C G C A 0 V V
  • 如何使用R在csv文件中按列添加数据?

    我有向量中包含的信息 例如 sequence1 lt seq 1 20 sequence2 lt seq 21 40 我想将该数据附加到文件中 所以我使用 write table sequence1 file test csv sep ap
  • 如何从“埃尔米特”曲线转换为贝塞尔曲线?

    正如主题所述 如何从 Hermite 曲线转换为 Bezier 曲线 具体来说 我正在寻找一种方法来转换 Microsoft XNA Framework 的 Curve 类 使用 Hermite 插值 以便使用 Windows Presen
  • Polymer 1.0:在纸张菜单元素内使用模板 dom-repeat 在选择时显示铁页

    我使用 Polymer 1 0 创建了纸抽屉面板布局 在抽屉里 我有一个菜单 使用纸质菜单 其中的纸质项目装订在铁页上 我把这个例子取自带有核心页面的内容切换 Polycasts 09 https youtu be 6x2A9UgLqEw
  • django Manytomany自关系按中间表id排序

    Model class Person models Model friends models ManyToManyField self blank True null True friends person friends order by
  • Android TableLayout 标题行

    好的 我已经有了这个 TableLayout 它充满了数据 所有行都是以编程方式添加的 我在 Horizo ntalScrollView 内部有 TableLayout 而后者又在 ScrollView 内部 这使我可以水平和垂直滚动 我现
  • Awesomium Winforms 无法在 VMWare 中运行

    我们有一个应用程序在物理机上运行 Awesomium 1 7 5 1 效果很好 但在虚拟机上会失败 在附加了远程调试器的虚拟机上运行的 陷阱 似乎以某种方式使 Awesomium 正常工作 使用 Awesomium 时 您需要在虚拟机中设置
  • 跨多行标记时如何避免空格

    朋友们 我在用着atom编写html代码 每次我输入 p 这个词 它都会自动生成3行代码 p p 现在我给出一个内联类 将两个 p 元素放在一行中 inline display inline block p class inline Hi
  • Django 应用程序部署到 Heroku,应用程序错误,

    我正在努力将 Django 1 10 应用程序部署到 Heroku 正如前言 我正在使用 Pycharm 并且一度不得不重命名我的项目 但它在所有地方都进行了重构并更改了名称 所以我希望这与该问题无关 当我将此网站推送到 Heroku 时