J'essaie d'exécuter du code Django en utilisant uwsgi. Quand je suis dans le bon virtualenv, ça fonctionne bien. Mais en dehors de celui-ci, quand je le lance comme suit:Démarrer uwsgi en dehors de virtualenv
uwsgi /home/axial/axial/config.ini
Je reçois cette erreur:
[uWSGI] getting INI configuration from config.ini
*** Starting uWSGI 2.0.15 (64bit) on [Fri Jul 7 23:34:01 2017] ***
compiled with version: 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564) on 29 June 2017 06:51:11
os: FreeBSD-11.1-RC1 FreeBSD 11.1-RC1 #0 r320486: Fri Jun 30 02:25:16 UTC 2017 [email protected]:/usr/obj/usr/src/sys/GENERIC
nodename: axial
machine: amd64
clock source: unix
detected number of CPU cores: 1
current working directory: /usr/home/axial/axial
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 5734
your memory page size is 4096 bytes
detected max file descriptor number: 28467
lock engine: POSIX semaphores
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 127.0.0.1:3031 fd 3
Python version: 2.7.13 (default, Jun 29 2017, 01:17:13) [GCC 4.2.1 Compatible FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564)]
Set PythonHome to /home/axial/venv/
ImportError: No module named site
Mon config.ini se présente comme suit:
[uwsgi]
socket = 127.0.0.1:3031
wsgi-file = /home/axial/axial/axial/wsgi.py
workers = 10
virtualenv = /home/axial/venv/
pythonpath = /home/axial/venv/bin/python3
#home = /home/axial/venv/
#chdir = /home/axial/venv/
Lorsque dans le virtualenv , Il n'y a pas de problème. Mais je pensais que spécifier le virtualenv dans le config.ini permettrait de résoudre ce problème? Qu'est-ce qui cause ça?
Ceci est sur FreeBSD. Note latérale:/home/axial (répertoire de l'utilisateur), le répertoire 'axial' suivant est le répertoire racine source, le répertoire 'axial' suivant est le répertoire de l'application qui contient le fichier wsgi.py.
Que voulez-vous dire par "dans virtualenv"? Et quel est le chemin vers le module 'site'? –
Sergey, je ne suis pas certain, en fait. Je n'ai pas cela dans mon requirements.txt, qui a été généré par pip. Ai-je besoin d'ajouter manuellement ceci dans le virtualenv? Mon objectif plus large est d'avoir uwsgi au démarrage du système, et peut-être même être un script FreeBSD rc. –
Puisque je ne comprends pas ce qu'est le module 'site' dans la structure de votre projet, je ne peux que vous suggérer de l'ajouter à python' PATH' afin que python sache comment trouver votre module et le charger correctement. Vous pouvez le faire de différentes façons - par exemple, installez le module 'site' en tant que paquet sous virtualenv si vous avez déjà setup.py ou ajoutez le chemin de ce module à la variable' PATH'. –