1

我正在尝试按照 djangoGirls 教程在 pythonanywhere.com 中部署我的网站。

当我运行我的网站时,它给了我这个错误:

运行 WSGI 应用程序时出错

ImportError:没有名为“whitenoise”的模块

文件“/var/www/cryptoassistant_pythonanywhere_com_wsgi.py”,第 7 行,在模块中>

从 whitenoise.django 导入 DjangoWhiteNoise

我的 WGSI 文件:

import os
import sys
from django.core.wsgi import get_wsgi_application

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

from whitenoise.django import DjangoWhiteNoise

application = DjangoWhiteNoise(get_wsgi_application())

path = '/home/cryptoassistant/tfg/'
if path not in sys.path:
    sys.path.append(path)

和我的 setting.py 文件:

MIDDLEWARE_CLASSES = (
    'django.middleware.WhiteNoiseMiddleware',
    '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',
)

我安装了白噪声

$ pip install whitenoise
> Requeriment already satisfied: whitenoise in path (3.3.1)

我应该改变什么?

编辑

我安装了冻结和我的要求:

-f /usr/share/pip-wheels
Django==1.8
freeze==1.0.10
six==1.11.0
whitenoise==3.3.1
4

1 回答 1

0

如果您使用虚拟环境,请检查(命令:pip freeze)是否安装了 whitenoise。如果是,您可以将以下详细信息添加到您的 settings.py 以工作。

MIDDLEWARE = [
  'django.middleware.security.SecurityMiddleware',
  'whitenoise.middleware.WhiteNoiseMiddleware',
  # ...
]

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

STATIC_URL = '/static/'

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

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
#    '/var/www/static/',
]

如上所述验证/更新您的静态设置。

接下来,确保 DEBUG=True 并运行 collectstatic 命令。

要查看是否有任何错误,请运行 makemigrations 和 migrate 命令。你应该很好

于 2021-09-23T08:42:03.220 回答