Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Heroku Django应用程序未提供服务,由于ModuleNotFoundError而崩溃:<;应用程序>;(*不是需求模块*)?_Python_Django_Heroku - Fatal编程技术网

Python Heroku Django应用程序未提供服务,由于ModuleNotFoundError而崩溃:<;应用程序>;(*不是需求模块*)?

Python Heroku Django应用程序未提供服务,由于ModuleNotFoundError而崩溃:<;应用程序>;(*不是需求模块*)?,python,django,heroku,Python,Django,Heroku,因此,我有一个已经存在的Django项目(称为“MLshowcase”),我在过去几个月里建立了这个项目。我第一次尝试部署到Heroku,已经完成了所有步骤并添加了我认为需要的所有文件。在大约50次失败(需求太大)之后,我终于得到了要部署的项目!注意:为了部署,我必须在heroku上禁用collectstatic,否则它会一直说我的一个静态文件“不在根‘static’中”。但它确实部署了 然而,转到应用程序(在heroku上称为‘iansworld’)只会显示“应用程序错误,无法提供页面”。我已

因此,我有一个已经存在的Django项目(称为“MLshowcase”),我在过去几个月里建立了这个项目。我第一次尝试部署到Heroku,已经完成了所有步骤并添加了我认为需要的所有文件。在大约50次失败(需求太大)之后,我终于得到了要部署的项目!注意:为了部署,我必须在heroku上禁用collectstatic,否则它会一直说我的一个静态文件“不在根‘static’中”。但它确实部署了

然而,转到应用程序(在heroku上称为‘iansworld’)只会显示“应用程序错误,无法提供页面”。我已经摆弄了一天的设置和wsgi,但仍然一无所获。当我查看Herko日志时,它显示为build-crash-build-crash..等等,其中一些日志说:

app[web.1]: ModuleNotFoundError: No module named 'iansworld'
完整github:

程序文件

web: gunicorn iansworld.wsgi --log-file -
requirements.txt

conda==4.3.16
conda-build==2.1.5
decorator==4.4.1
django==3.0.3
django-heroku
djangorestframework==3.9.3
django-crispy-forms==1.9.1
dj_database_url
django-adminlte-3==0.1.6
gunicorn
html5lib==1.0.1
joblib==0.14.1
json5==0.9.1
jsonschema==3.2.0
matplotlib==3.1.3
numpy==1.18.1
packaging==19.1
pandas==1.0.1
path==13.1.0
requests==2.22.0
scikit-learn==0.22.1
scipy==1.4.1
seaborn==0.10.0
tables==3.6.1
whitenoise
设置.py

import os
import dj_database_url
import django_heroku

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR,"templates")
STATIC_DIR = os.path.join(BASE_DIR,"static")
STATIC_ROOT = os.path.join(BASE_DIR,"staticfiles")
STATIC_URL = "/static/"

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "xxx")

# SECURITY WARNING: don"t run with debug turned on in production!
DEBUG = os.environ.get("DJANGO_DEBUG", "") != "False"

ALLOWED_HOSTS = ["iansword.herokuapp.com", "localhost", "127.0.0.1"]


# Application definition

INSTALLED_APPS = [
    "whitenoise.runserver_nostatic",
    "adminlte3",
    "adminlte3_theme",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "titanic",
    "rest_framework",
    "crispy_forms",
    "skills",
]

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "whitenoise.middleware.WhiteNoiseMiddleware",
    "whitenoise.storage.CompressedManifestStaticFilesStorage",
    "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 = "mlshowcase.urls"

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [TEMPLATE_DIR,],
        "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 = "mlshowcase.wsgi.application"


# Database
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases

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

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

# Password validation
# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators

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",
    },
]


# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/

LANGUAGE_CODE = "en-us"

TIME_ZONE = "UTC"

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"

#LOGIN_REDIRECT_URL = "/"

REST_FRAMEWORK = {
    "DEFAULT_PARSER_CLASSES": (
        "rest_framework.parsers.JSONParser",
        "rest_framework.parsers.FormParser",
    )
}

CRISPY_TEMPLATE_PACK = "bootstrap4"
我在本地收集static,因此在根目录中有“static”和“staticfiles”。在成功部署之前,我能够在当地服役。那一定是配置问题吧

这是heroku日志--尾部:

20-05-20T00:39:53.000000+00:00应用程序[api]:由用户XX启动生成
2020-05-20T00:42:25.148602+00:00应用程序[api]:由用户XX创建的版本v14
2020-05-20T00:42:25.148602+00:00应用程序[api]:由用户XX部署5c85f4db
2020-05-20T00:42:26.539576+00:00 heroku[web.1]:状态从崩溃变为启动
2020-05-20T00:42:50.929018+00:00 heroku[web.1]:状态从开始更改为崩溃
2020-05-20T00:42:50.701801+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][4][INFO]启动gunicorn 20.0.4
2020-05-20T00:42:50.702751+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][4][INFO]收听:http://0.0.0.0:29801 (4)
2020-05-20T00:42:50.703003+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][4][INFO]使用辅助程序:同步
2020-05-20T00:42:50.711275+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][10][INFO]带pid的引导工作程序:10
2020-05-20T00:42:50.718832+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][10][错误]工作进程中出现异常
2020-05-20T00:42:50.718834+00:00应用程序[web.1]:回溯(最近一次通话):
2020-05-20T00:42:50.718834+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/arbiter.py”,第583行,在spawn_worker中
2020-05-20T00:42:50.718835+00:00应用程序[web.1]:worker.init_进程()
2020-05-20T00:42:50.718835+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/workers/base.py”,第119行,在初始化过程中
2020-05-20T00:42:50.718836+00:00应用程序[web.1]:自加载
2020-05-20T00:42:50.718836+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/workers/base.py”,第144行,在load\u wsgi中
2020-05-20T00:42:50.718836+00:00应用程序[web.1]:self.wsgi=self.app.wsgi()
2020-05-20T00:42:50.718837+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/app/base.py”,wsgi第67行
2020-05-20T00:42:50.718837+00:00应用程序[web.1]:self.callable=self.load()
2020-05-20T00:42:50.718838+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/app/wsgiapp.py”,第49行,已加载
2020-05-20T00:42:50.718838+00:00应用程序[web.1]:返回自加载
2020-05-20T00:42:50.718839+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/app/wsgiapp.py”,第39行,在load_wsgiapp中
2020-05-20T00:42:50.718839+00:00应用程序[web.1]:返回util.import\u应用程序(self.app\u uri)
2020-05-20T00:42:50.718839+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/util.py”,第358行,在导入应用程序中
2020-05-20T00:42:50.718840+00:00应用程序[网站1]:mod=importlib.import\u模块(模块)
2020-05-20T00:42:50.718840+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/importlib/\uuuu init\uuuuu.py”,第127行,在导入模块中
2020-05-20T00:42:50.718841+00:00应用程序[web.1]:返回引导程序。导入gcd(名称[级别:],包,级别)
2020-05-20T00:42:50.718841+00:00应用程序[web.1]:文件“”,第1006行,在导入中
2020-05-20T00:42:50.718842+00:00应用程序[web.1]:文件“”,第983行,在“查找”和“加载”中
2020-05-20T00:42:50.718842+00:00应用程序[web.1]:文件“”,第953行,在“查找”和“加载”中解锁
2020-05-20T00:42:50.718842+00:00应用程序[web.1]:文件“”,第219行,在“调用”中删除“帧”
2020-05-20T00:42:50.718843+00:00应用程序[web.1]:文件“”,第1006行,在导入中
2020-05-20T00:42:50.718843+00:00应用程序[web.1]:文件“”,第983行,在“查找”和“加载”中
2020-05-20T00:42:50.718844+00:00应用程序[web.1]:文件“”,第965行,在“查找”和“加载”中解锁
2020-05-20T00:42:50.718844+00:00应用程序[web.1]:ModuleNotFoundError:没有名为“iansworld”的模块
2020-05-20T00:42:50.719216+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][10][INFO]工人退出(pid:10)
2020-05-20T00:42:50.765012+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][4][INFO]正在关闭:主
2020-05-20T00:42:50.765168+00:00应用程序[web.1]:[2020-05-20 00:42:50+0000][4][INFO]原因:工作程序无法启动。
2020-05-20T00:42:58.000000+00:00应用程序[api]:构建成功
2020-05-20T00:45:00.448059+00:00 heroku[web.1]:状态从崩溃变为启动
2020-05-20T00:45:32.080224+00:00 heroku[web.1]:状态从开始更改为崩溃
2020-05-20T00:45:31.890218+00:00应用程序[web.1]:[2020-05-20 00:45:31+0000][4][INFO]启动gunicorn 20.0.4
2020-05-20T00:45:31.891181+00:00应用程序[web.1]:[2020-05-20 00:45:31+0000][4][INFO]收听地址:http://0.0.0.0:18844 (4)
2020-05-20T00:45:31.891401+00:00应用程序[web.1]:[2020-05-20 00:45:31+0000][4][INFO]使用辅助程序:同步
2020-05-20T00:45:31.897725+00:00应用程序[web.1]:[2020-05-20 00:45:31+0000][10][INFO]带pid的引导工作程序:10
2020-05-20T00:45:31.906592+00:00应用程序[web.1]:[2020-05-20 00:45:31+0000][10][错误]工作进程中出现异常
2020-05-20T00:45:31.906594+00:00应用程序[web.1]:回溯(最近一次通话):
2020-05-20T00:45:31.906608+00:00应用程序[web.1]:文件“/app/.heroku
20-05-20T00:39:53.000000+00:00 app[api]: Build started by user XX
2020-05-20T00:42:25.148602+00:00 app[api]: Release v14 created by user XX
2020-05-20T00:42:25.148602+00:00 app[api]: Deploy 5c85f4db by user XX
2020-05-20T00:42:26.539576+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-20T00:42:50.929018+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-20T00:42:50.701801+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-05-20T00:42:50.702751+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [4] [INFO] Listening at: http://0.0.0.0:29801 (4)
2020-05-20T00:42:50.703003+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [4] [INFO] Using worker: sync
2020-05-20T00:42:50.711275+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [10] [INFO] Booting worker with pid: 10
2020-05-20T00:42:50.718832+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [10] [ERROR] Exception in worker process
2020-05-20T00:42:50.718834+00:00 app[web.1]: Traceback (most recent call last):
2020-05-20T00:42:50.718834+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-05-20T00:42:50.718835+00:00 app[web.1]: worker.init_process()
2020-05-20T00:42:50.718835+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-05-20T00:42:50.718836+00:00 app[web.1]: self.load_wsgi()
2020-05-20T00:42:50.718836+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-05-20T00:42:50.718836+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2020-05-20T00:42:50.718837+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-05-20T00:42:50.718837+00:00 app[web.1]: self.callable = self.load()
2020-05-20T00:42:50.718838+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-05-20T00:42:50.718838+00:00 app[web.1]: return self.load_wsgiapp()
2020-05-20T00:42:50.718839+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-05-20T00:42:50.718839+00:00 app[web.1]: return util.import_app(self.app_uri)
2020-05-20T00:42:50.718839+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
2020-05-20T00:42:50.718840+00:00 app[web.1]: mod = importlib.import_module(module)
2020-05-20T00:42:50.718840+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
2020-05-20T00:42:50.718841+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2020-05-20T00:42:50.718841+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
2020-05-20T00:42:50.718842+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 983, in _find_and_load
2020-05-20T00:42:50.718842+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
2020-05-20T00:42:50.718842+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-05-20T00:42:50.718843+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
2020-05-20T00:42:50.718843+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 983, in _find_and_load
2020-05-20T00:42:50.718844+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
2020-05-20T00:42:50.718844+00:00 app[web.1]: ModuleNotFoundError: No module named 'iansworld'
2020-05-20T00:42:50.719216+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [10] [INFO] Worker exiting (pid: 10)
2020-05-20T00:42:50.765012+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [4] [INFO] Shutting down: Master
2020-05-20T00:42:50.765168+00:00 app[web.1]: [2020-05-20 00:42:50 +0000] [4] [INFO] Reason: Worker failed to boot.
2020-05-20T00:42:58.000000+00:00 app[api]: Build succeeded
2020-05-20T00:45:00.448059+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-20T00:45:32.080224+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-20T00:45:31.890218+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-05-20T00:45:31.891181+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [4] [INFO] Listening at: http://0.0.0.0:18844 (4)
2020-05-20T00:45:31.891401+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [4] [INFO] Using worker: sync
2020-05-20T00:45:31.897725+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [10] [INFO] Booting worker with pid: 10
2020-05-20T00:45:31.906592+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [10] [ERROR] Exception in worker process
2020-05-20T00:45:31.906594+00:00 app[web.1]: Traceback (most recent call last):
2020-05-20T00:45:31.906608+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2020-05-20T00:45:31.906610+00:00 app[web.1]: worker.init_process()
2020-05-20T00:45:31.906610+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py", line 119, in init_process
2020-05-20T00:45:31.906610+00:00 app[web.1]: self.load_wsgi()
2020-05-20T00:45:31.906611+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi
2020-05-20T00:45:31.906611+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2020-05-20T00:45:31.906612+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
2020-05-20T00:45:31.906612+00:00 app[web.1]: self.callable = self.load()
2020-05-20T00:45:31.906612+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load
2020-05-20T00:45:31.906613+00:00 app[web.1]: return self.load_wsgiapp()
2020-05-20T00:45:31.906613+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
2020-05-20T00:45:31.906614+00:00 app[web.1]: return util.import_app(self.app_uri)
2020-05-20T00:45:31.906614+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/util.py", line 358, in import_app
2020-05-20T00:45:31.906614+00:00 app[web.1]: mod = importlib.import_module(module)
2020-05-20T00:45:31.906615+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
2020-05-20T00:45:31.906615+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2020-05-20T00:45:31.906616+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
2020-05-20T00:45:31.906616+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 983, in _find_and_load
2020-05-20T00:45:31.906617+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
2020-05-20T00:45:31.906617+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2020-05-20T00:45:31.906617+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
2020-05-20T00:45:31.906618+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 983, in _find_and_load
2020-05-20T00:45:31.906618+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
2020-05-20T00:45:31.906618+00:00 app[web.1]: ModuleNotFoundError: No module named 'iansworld'
2020-05-20T00:45:31.906935+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [10] [INFO] Worker exiting (pid: 10)
2020-05-20T00:45:31.950987+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [4] [INFO] Shutting down: Master
2020-05-20T00:45:31.951221+00:00 app[web.1]: [2020-05-20 00:45:31 +0000] [4] [INFO] Reason: Worker failed to boot.
2020-05-20T00:45:41.382497+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=iansworld.herokuapp.com request_id=c5196195-eeea-4cd4-a142-665a7f0e7bc0 fwd="193.176.211.52" dyno= connect= service= status=503 bytes= protocol=https