Je vais servir mon projet Django avec UWSGI sur le serveur Ubuntu, mais cela ne fonctionne pas.
J'utilise Python 3.6 mais l'UWSGI me montre qu'il est 2.7 p>
J'ai changé de python par défaut sur python3 .6 Mais Uwsgi ne fonctionne toujours pas. P>
Ceci est ma commande: p> Ceci est Message d'erreur: p> *** Starting uWSGI 2.0.18 (64bit) on [Tue Jun 4 21:03:58 2019] ***
compiled with version: 5.4.0 20160609 on 04 June 2019 11:39:14
os: Linux-4.4.0-1079-aws #89-Ubuntu SMP Tue Mar 26 15:25:52 UTC 2019
nodename: ip-172-31-18-239
machine: x86_64
clock source: unix
detected number of CPU cores: 2
current working directory: /home/ubuntu/repository/charteredbus
*** running under screen session 1636.sbus ***
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /home/ubuntu/repository/charteredbus
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 15738
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :8001 fd 4
spawned uWSGI http 1 (pid: 8402)
uwsgi socket 0 bound to TCP address 127.0.0.1:39614 (port auto-assigned) fd 3
Python version: 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
Set PythonHome to /home/ubuntu/repository/env
ImportError: No module named site
3 Réponses :
Le journal indique qu'il n'y a pas de module nommé site p>
Importerror: Aucun module nommé site p> blockQuote>
Je suppose que le site est une application Django. Avez-vous enregistré ceci dans votre installation installée (paramètres.py) p>
Sinon, vous devrez peut-être enregistrer votre application. (apps.py dans l'application du site) p>
S'il vous plaît laissez-moi savoir si je vous ai aidé. p>
Jasper P>
Malheureusement, UWSGI doit être compilé avec la version Python correspondant à votre virtualenv. Cela signifie: Si UWSGI était compilé avec Python 2.7, vous ne pouvez pas utiliser Python 3.6 dans votre virtualenv (et dans votre application Django). P>
Heureusement, il existe certaines méthodes pour résoudre ce problème: P>
premier est assez simple. Tout ce que vous avez à faire est de changer de chemin vers UWSGI binaire dans votre script de démarrage pour pointer vers UWSGI installé dans votre virtualenv. (Si vous commencez UWSGI à l'aide de SystemD, je recommande aux unités utilisateur SystemD. N'oubliez pas d'exécuter La seconde n'est pas si compliquée. Vous devez d'abord installer UWSGI sans plug-in Python, puis installez des plug-ins distincts pour toutes les versions de Python dont vous aurez besoin. Plus sur ce que vous pouvez trouver ici . Il existe probablement des plugins prêts dans votre référentiel de packages système si vous utilisez UWSGI à partir de celui-ci. P> LognTlacTlactiver-lattre p>) p>
J'ai vérifié mon virtualenv, mais UWSGI n'a pas été installé à Virtualenv. J'ai donc ran pip install uwsgi mais une erreur renvoyée.
Avez-vous changé de chemin vers UWSGI binaire? Comment démarrez-vous UWSGI?
UWSGI --HTTP: 8000 --Home / Accueil / Ubuntu / env -CHDir / Accueil / Ubuntu / Project -W Blog.wsgi
Utilisez-vous UWSGI lorsque vous êtes à l'intérieur virtualenv?
Pour ceux qui ne peuvent pas (ou n'a pas échoué) Construire un binaire UWSGI indépendant de la langue en suivant la deuxième option mentionnée par @gwynbleidd, vous pouvez également créer un binaire autonome StandalEone Standalone Staché à différents plugins Python, par:
Préservation du binaire UWSGI intégré P> li>
Nettoyer la construction précédente en exécutant exécutant la commande Cape Clean code> dans
/ chemin / à / uwsgi_source_folder code> p> p>
li>
your_python_version uwsgiconfig.py --build code> dans
/ chemin / à / uwsgi_source_folder code>, par exemple p>
li>
ul>