繁体   English   中英

如何在本地为Heroku运行Django项目

[英]How to run Django project locally for Heroku

我有一个Django项目,结构如下。

在此处输入图片说明

在此处输入图片说明

Procfile ,我有以下代码,

web: gunicorn team-app.wsgi --log-file -

这是requirements.txt

appdirs==1.4.3
coreapi==2.3.0
coreschema==0.0.4
dj-database-url==0.4.2
Django==1.11
django-allauth==0.31.0
django-rest-auth==0.9.1
django-rest-swagger==2.1.2
djangorestframework==3.6.2
gunicorn==19.7.1
itypes==1.1.0
Jinja2==2.9.6
MarkupSafe==1.0
oauthlib==2.0.2
openapi-codec==1.3.1
packaging==16.8
pyparsing==2.2.0
python-openid==2.2.5
pytz==2017.2
requests==2.13.0
requests-oauthlib==0.8.0
simplejson==3.10.0
six==1.10.0
uritemplate==3.0.0
whitenoise==3.3.0

env是本地安装的virtualenv 当我输入root文件夹team-app并运行命令heroku local web ,出现以下错误,

在此处输入图片说明

在此处输入图片说明

所以,问题是ImportError: No module named team-app.wsgi我相信的位置Procfile或东西是不正确的。 wsgi.py在文件users_groups是如下图所示:

"""
WSGI config for users_groups project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

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

application = get_wsgi_application()

如果需要,我可以提供其他信息。 如何解决这个问题?

这里有两个问题。 首先是与Django相关的:

ImportError:没有名为team-app.wsgi的模块

您的wsgi.py文件位于users_groups/目录中,因此您的Procfile应该引用users_groups.wsgi

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

包含整个项目的顶级目录的名称无关紧要。

第二个问题与Heroku有关。 Heroku希望Django目录是您存储库的根目录。 Procfile移至src/ ,然后运行heroku local web应该可以使您在本地运行。

部署到Heroku时,必须确保当前的src/目录是您的根目录。 这可能意味着将一些文件移至src/并在那里重建/重构您的Git存储库,或者可能意味着将当前src/所有内容都移到了更高的级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM