Ho la mia applicazione Django esistente in esecuzione sul mio MacBook. La struttura della directory è simile a questa:
myproject/
mySite/
__init__.py
settings.py
urls.py
wsgi.py
myApp1/
__init__.py
models.py
views.py
manage.py
requirements.txt
Fino ad ora, ho utilizzato il webserver di giocattoli Django per eseguire la mia app: ./manage.py runserver 0.0.0.0:8000
. Ma ora voglio usare Gunicorn invece. Quindi seguo le istruzioni Qui.
lo voglio source myVirtualenv/bin/activate && cd myproject && gunicorn mySite.wsgi
. Ottengo il seguente errore:
File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "myproject/MyApp2/models.py", line 11, in <module>
from caching.base import CachingManager, CachingMixin
ImportError: No module named caching.base
Quando corro ./manage.py runserver 0.0.0.0:8000
dalla stessa posizione funziona perfettamente bene.
Perché? Sto facendo qualcosa di sbagliato? Django-Cache-Machine non funziona con Gunicorn / WSGI? Come aggirare questo problema?
risposte:
1 per risposta № 1Sembra che tu abbia installato Gunicorn globalmentepiuttosto che all'interno di virtualenv, quindi l'eseguibile punta al Python globale e alla sua directory dei pacchetti di siti piuttosto che a quella di virtualenv. Reinstallare localmente il gunicorn.
2 per risposta № 2
Per eseguire il tuo progetto usando gunicorn, prova quanto segue:
- attiva il tuo virtualenv
- vai alla directory del tuo progetto
- correre
gunicorn mySite.wsgi:application --bind 127.0.0.1:8000
Se i comandi funzionano bene, allora il mio è impostato. Altrimenti, prova il seguente tutorial. Io uso sempre questo tutorial da solo, quando imposto un nuovo progetto per la produzione. Provalo. Impostare Django con Nginx, Gunicorn e Supervisor