Tengo un proyecto Django y la estructura es la siguiente,
Dentro del Procfile , tengo este código,
web: gunicorn team-app.wsgi --log-file - Estos son los 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 es el virtualenv instalado localmente. Cuando entro en la carpeta root , team-app y ejecuto el comando heroku local web , aparece el siguiente error:
Entonces, el problema es ImportError: No module named team-app.wsgi y creo que la ubicación del Procfile o algo así no es correcto. El archivo wsgi.py en los grupos de users_groups es el siguiente:
""" 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()Puedo proporcionar información adicional si es necesario. ¿Cómo resolver este problema?
Hay dos problemas aquí. El primero está relacionado con Django:
ImportError: ningún módulo llamado team-app.wsgi
Su archivo wsgi.py se encuentra en el directorio users_groups/ por lo que su Procfile debe hacer referencia users_groups.wsgi :
web: gunicorn users_groups.wsgi --log-file -El nombre del directorio de nivel superior que contiene todo el proyecto es irrelevante.
El segundo problema está relacionado con Heroku. Heroku espera que el directorio Django sea la raíz de su repositorio. Mover Procfile a src/ , luego ejecutar heroku local web debería ponerlo en funcionamiento localmente.
Cuando implemente en Heroku, deberá asegurarse de que su directorio src/ actual sea su directorio raíz. Eso puede significar mover algunos archivos a src/ y recrear/refactorizar su repositorio de Git allí, o podría significar mover todo lo que está actualmente en src/ a un nivel superior.