问题描述
使用uwsgi运行Django报错 ModuleNotFoundError: No module named ‘django’
和 unable to load app 0 (mountpoint=‘’) (callable not found or import error)
运行命令
uwsig --ini uwsgi.ini
配置如下
# cat uwsgi.ini
[uwsgi]
# uwsgi服务监听
http=0.0.0.0:12345
#项目目录
chdir=/workspace/project/django/back
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=back/wsgi.py
#wsgi-file=/workspace/project/django/back/back/wsgi.py
# 进程数
processes=2
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 停止进程自动删除pid文件
vacuum = true
# pid文件
pidfile=/workspace/project/uwsgi/uwsgi.pid
# 日志文件
daemonize=/workspace/project/uwsgi/uwsgi.log
# 指定项目依赖的虚拟环境
virtualenv=/workspace/env/.virtualenv/venv
查看uwsgi日志发现里面显示的python版本是3.6.8,与虚拟环境3.9.18不一致
解决方案:
因为我这里使用的是虚拟环境,python是3.9.18版本 Django也是在虚拟环境安装的,
激活虚拟环境 然后再启动uswgi就可以了
source /workspace/env/.virtualenv/venv/bin/activate
uwsig --ini uwsgi.ini
使用workon venv进入了虚拟环境,pip安装各种包都没有问题,启动uwsgi就不行,
没定位到具体的问题,没搞懂 workon 和 activate 什么区别