UWSGI не обнаруживает виртуальную среду Pipenv
Я использую uWSGI на Ubuntu 20.04 для размещения моего Django API.
Это мой uwsgi.ini
файл:
[uwsgi]
#socket = :5000
socket = /home/ubuntu/lyrics-chords/lyrics-chords.sock
chown-socket = ubuntu:www-data
uid=ubuntu
gid=www-data
chmod-socket=660
master=true
chdir = /home/ubuntu/lyrics-chords
module = backend.wsgi:application
virtualenv = /home/ubuntu/.local/share/virtualenvs/lyrics-chords-xEtMg5XN
vacuum = true
Когда я запускаю uwsgi --ini uwsgi.ini
вне виртуальной среды, журналы указывают, что виртуальная среда не активирована (или, по крайней мере, что модули в виртуальной среде недоступны). Вот журналы:
*** Starting uWSGI 2.0.19.1 (64bit) on [Tue Aug 17 23:30:58 2021] ***
compiled with version: 9.3.0 on 08 August 2021 17:51:00
os: Linux-5.8.0-1037-oracle #38~20.04.1-Ubuntu SMP Fri Jul 16 00:56:44 UTC 2021
nodename: lyrics-chords
machine: aarch64
clock source: unix
detected number of CPU cores: 1
current working directory: /etc/uwsgi/sites
detected binary path: /home/ubuntu/.local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /home/ubuntu/lyrics-chords
your processes number limit is 22953
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 socket 0 bound to UNIX address /home/ubuntu/lyrics-chords/lyrics-chords.sock fd 3
Python version: 3.8.10 (default, Jun 2 2021, 10:49:15) [GCC 9.4.0]
PEP 405 virtualenv detected: /home/ubuntu/.local/share/virtualenvs/lyrics-chords-xEtMg5XN
Set PythonHome to /home/ubuntu/.local/share/virtualenvs/lyrics-chords-xEtMg5XN
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xaaaae41e73c0
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145840 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
Traceback (most recent call last):
File "/home/ubuntu/lyrics-chords/./backend/wsgi.py", line 3, in <module>
from django.core.wsgi import get_wsgi_application
ModuleNotFoundError: No module named 'django'
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 58827)
spawned uWSGI worker 1 (pid: 58828, cores: 1)
Дело в том, что в нем говорится, что виртуальная среда была найдена:
PEP 405 virtualenv detected: /home/ubuntu/.local/share/virtualenvs/lyrics-chords-xEtMg5XN
Я упускаю что-то очевидное? Спасибо.
Возможно, стоит отметить, что когда я просто активирую виртуальную среду, затем вызываю uwsgi --ini uwsgi.ini
, все работает нормально.