UWSGI Django connect http uwsgi.ini



谁能告诉我为什么这句话对我有用:

sudo uwsgi --chdir=/home/krzyzak21/venv/my_gless --module=my_gless.wsgi:application --env=DJANGO_SETTINGS_MODULE=my_gless.settings --master  --http=127.0.0.1:8000  --home=/home/krzyzak21/venv/

但这:

sudo uwsgi --ini my_gless/config/uwsgi.ini

not and add error:

Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00007f49a03debc0 (most recent call first):
<no Python frame>
[uwsgi]
projectname =my_gless
base = /home/krzyzak21/venv/%(projectname)

master = true
virtualenv = /home/krzyzak21/venv/%(projectname)
pythonpath = %(base)
chdir = %(base)
env = DJANGO_SETTINGS_MODULE=%(projectname).settings
module = %(projectname).wsgi:application

我到pythonpath

[
"",
"/usr/lib/python38.zip",
"/usr/lib/python3.8",
"/usr/lib/python3.8/lib-dynload",
"/home/krzyzak21/venv/lib/python3.8/site-packages",
]

两种配置的home参数不同。

工作配置有效

sudo uwsgi
--chdir=/home/krzyzak21/venv/my_gless
--env=DJANGO_SETTINGS_MODULE=my_gless.settings
--home=/home/krzyzak21/venv/
--http=127.0.0.1:8000 
--master 
--module=my_gless.wsgi:application

,无效的

sudo uwsgi
--chdir=/home/krzyzak21/venv/my_gless
--env=DJANGO_SETTINGS_MODULE=my_gless.settings
--master
--module=my_gless.wsgi:application
--pythonpath=/home/krzyzak21/venv/my_gless
--virtualenv=/home/krzyzak21/venv/my_gless

-特别是,--home(又名--virtualenv)似乎是不正确的,--pythonpath也是。在venv中不太可能有my_gless目录。

最新更新