有没有正确的方法让 web2py 使用 Python3 而不是 Python2?

Is there a proper way to make web2py use Python3 instead of Python2?

我已经使用带有 Python v2 的 web2py 几年了,现在我想切换到 Python 3 运行time,但我不确定是什么是正确的方法吗?

我通常使用 here 提供的安装脚本安装 web2py,它在 Ubuntu 18.04 下 运行ning。 =17=]

djordje@vmi:~$ python --version
Python 2.7.17
djordje@vmi:~$ python3 --version
Python 3.6.9
djordje@vmi:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

我尝试将默认的 Python 版本设置为 3,如本 中所述,使用:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3 10

并将默认 Python 设置为 v3,但即使在重新启动服务器后 - web2py 仍然 运行s 与 Python v2.

Version
2.18.5-stable+timestamp.2019.04.08.04.22.03
(Running on nginx/1.14.0, Python 2.7.17)

是否有推荐的方法将 web2py 设置为 运行 with Python 3 on Linux?

经过几天的搜索,我似乎找到了一些很容易实现的东西,并且在我的案例中很有效。感谢以下link.

我安装了以下:

apt install uwsgi-plugin-python3

然后我在/usr/bin下列出了安装的插件:

ls /usr/bin/uwsgi_python*

有两个:uwsgi_python3 和 uwsgi_python36 所以我使用了:

update-alternatives --set uwsgi /usr/bin/uwsgi_python36

重新启动服务器后,它成功了:

2.18.5-stable+timestamp.2019.04.08.04.22.03
(Running on nginx/1.14.0, Python 3.6.9)

也许有更好的(首选方式),但我不想添加虚拟环境,也不想更改默认的 OS Python 版本。这样,我刚刚更新了 uwsgi 运行时。

我们能够通过卸载一个版本的 uwsgi pip 包、安装另一个版本并重新启动服务,在我们的 web2py 服务器上的 python 2 和 3 之间切换:

pip uninstall uwsgi
pip3 install uwsgi
service uwsgi restart