uwsgi 插件“python3”适用于 Python 3.6,不适用于 Python3.8

vin*_*zee 6 virtualenv uwsgi python-3.x python-3.8

我有以下uwsgi配置:

[uwsgi]
callable=app
mount = /labs=/home/vinzee/projectname/app/wsgi.py
manage-script-name = true
touch-reload=/home/vinzee/projectname/app/wsgi.py
socket=/tmp/labshome.sock
processes=5
threads=1
venv=/home/vinzee/.virtualenvs/projectnamevenv38
chdir=/home/vinzee/projectname/app/
plugin=logfile,python3
logger=delete file:/dev/null/c.log
log-route = delete (\] POST \/save => generated )
pythonpath=/home/vinzee/projectname/
Run Code Online (Sandbox Code Playgroud)

venvuse中指定的虚拟环境Python3.8。重新加载时uwsgi,我收到经典错误:

ModuleNotFoundError: No module named 'flask'
Run Code Online (Sandbox Code Playgroud)

uwsgi当's 插件是并且项目使用 Python >= 3 时,会发生相同的错误,如这个答案python中所示。

当我切换到Python3.6时,ModuleNotFoundError消失并且一切正常。uwsgi-plugin-python3我已经有最新版本的包了。

我怎样才能摆脱这个错误Python3.8?我需要安装什么包?

Sac*_*and 0

看来这是创建虚拟环境的问题。

virtualenv flask

cd flask

source bin/activate    (for activate env )
Run Code Online (Sandbox Code Playgroud)

您也可以尝试在 wsgi 文件配置中添加 python 路径

sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')
Run Code Online (Sandbox Code Playgroud)

或者

export PYTHONPATH=/root/environments/my_env/lib/python3.6/site-packages/
Run Code Online (Sandbox Code Playgroud)

最后..运行:

python -m flask run
Run Code Online (Sandbox Code Playgroud)