Centos 7
anaconda3
pip install uwsgi
conda create --name testenv python=3.7
好像有些是 source activate ,不过笔者这里的是下面的命令启动虚拟环境的。
conda activate testenv
(testenv)pip install uwsgi
有些文章说是系统级安装uWSGI服务器,不过这里有一个让人头疼的问题,那么就是安装了系统级的 uWSGI 服务器后,已经配置好了虚拟环境python解释器路径,但是uWSGI 竟然老是默认是系统级的 python 解释器,导致虚拟环境内的 python 解释器无法被识别调用,这就很古怪了,一开始以为是虚拟环境的路径识别问题,在激活虚拟环境后,在虚拟环境内使用 python -m venv --upgrade venv path ,更新虚拟环境路径配置文件,但最多解决Python3 venv 模块 No module named 'encodings' 问题,面对这种问题,笔者在虚拟环境内再次安装 uWSGI ,至此,问题解决,虚拟环境内的 python 解释器路径能被识别。
shell 命令查看虚拟环境下 uwsgi.ini 文件的配置变量:
uwsgi --help | grep virtualenv

[uwsgi]
#uid=test
#gid=test
#uid=www-data # Ubuntu系统下默认用户名
#gid=www-data # Ubuntu系统下默认用户组
project=testproject# 项目名
base=/home/work/testproject# 项目根目录
wsgi-file=/home/work/testproject/testproject/wsgi.py
home = /home/anaconda3/envs/testenv
#virtualenv = /home/anaconda3/envs/testenv
#pyhome = /home/anaconda3/envs/testenv
#http=127.0.0.1:8080
#http-socket=127.0.0.1:8080
#socket=/home/work/testproject/testproject.sock
socket=127.0.0.1:8080
pidfile=uwsgi.pid
processes=4
threads=2
enable-threads=true
# socket权限设置
chmod-socket=664 # 为 .sock 文件配置读、写、运行权限
# 服务停止时,自动移除unix socket和pid文件
vacuum=True
master=True
# 设置自中断时间
harakiri=300
# 设置缓冲
post-buffering=6553600
# 超时
http-timeout=600
#配置dump uwsgi 服务器日志记录
daemonize=/home/work/testproject/test_uwsgi.log
进入anaconda3 虚拟环境
conda activate testenv
which命令:
(testenv) which uwsgi
/home/anaconda3/envs/testenv//bin/uwsgi
位置在这里
/home/anaconda3/envs/testenv//bin/uwsgi
/home/anaconda3/envs/testenv//bin/uwsgi --ini /home/work/testproject/testproject.ini
后台运行:
nohup /home/anaconda3/envs/testenv//bin/uwsgi --ini /home/work/testproject/testproject.ini >/dev/null 2>&1 &
用 vs code 编辑器,反正都可以,或者命令行 cat
cat /home/work/testproject/test_uwsgi.log
1. 使用uWSGI和nginx来设置Django和你的web服务器
2. Python3 venv 模块 No module named ‘encodings’ 其中一种解决办法
3. python虚拟环境配置文件_uwsgi 配置 python virtualenv 虚拟环境目录 ( ini 配置)