EC2部署Django应用时UWSGI与Python路径配置错误求助
解决uWSGI连接Django时的Python Home路径错误问题
看你的报错信息,核心问题出在--home参数的路径设置上:
!!! Python Home is not a directory: /home/ubuntu/.local/share/virtualenvs/unifolio-back-_HCbnSkq/bin/python !!!
你把--home指向了Python可执行文件的路径,但这个参数要求的是虚拟环境的根目录,不是具体的二进制文件。uWSGI需要通过这个路径找到虚拟环境下的Python库和依赖目录,你给的路径不对,导致Python初始化时找不到编码模块,直接崩溃了。
修正后的命令
首先确认你的虚拟环境根目录是/home/ubuntu/.local/share/virtualenvs/unifolio-back-_HCbnSkq/(因为python可执行文件在这个目录的bin子文件夹里),把--home参数改成这个根目录即可:
uwsgi --http :8080 --home /home/ubuntu/.local/share/virtualenvs/unifolio-back-_HCbnSkq --chdir /srv/unifolio-back/ -w mysite.wsgi
额外优化建议
- 用
--virtualenv代替--home,语义更清晰,效果完全一致:
uwsgi --http :8080 --virtualenv /home/ubuntu/.local/share/virtualenvs/unifolio-back-_HCbnSkq --chdir /srv/unifolio-back/ -w mysite.wsgi
- 报错里还有
*** WARNING: you are running uWSGI without its master process manager ***,建议加上--master参数启用主进程管理,生产环境下更稳定:
uwsgi --http :8080 --virtualenv /home/ubuntu/.local/share/virtualenvs/unifolio-back-_HCbnSkq --chdir /srv/unifolio-back/ -w mysite.wsgi --master
内容的提问来源于stack exchange,提问作者dhooonk
相关产品推荐
相关产品推荐

