我有一个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()
如果需要,我可以提供其他信息。如何解决这个问题?
答案 0 :(得分:1)
这里有两个问题。 第一个是与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/
的所有文件移动到某个级别。