【问题标题】:Is there a proper way to make web2py use Python3 instead of Python2?有没有合适的方法让 web2py 使用 Python3 而不是 Python2?
【发布时间】:2020-02-07 14:09:07
【问题描述】:

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

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

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,如 link 中所述,使用:

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

并将默认 Python 设置为 v3,但即使在重新启动服务器后 - web2py 仍与 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 设置为在 Linux 上与 Python 3 一起运行?

【问题讨论】:

  • 您找到了可行的解决方案吗?
  • 到目前为止,我还没有找到比以下更好的解决方案。也尝试了 Tim Nyborg 的建议,但不是每次都奏效。
  • 是的,它终于奏效了。实际上,我的服务器上有两个 uwsgi 安装,在 /usr/bin/ 和 /usr/local/bin 中。由于它被配置为使用 /usr/local/bin/uwsgi 而我不知道这个事实,它最初并没有工作

标签: python linux ubuntu web2py


【解决方案1】:

经过几天的搜索,我似乎发现了一些相当容易实现的东西,并且在我的情况下正在工作。感谢以下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 运行时。

【讨论】:

    【解决方案2】:

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

    pip uninstall uwsgi
    pip3 install uwsgi
    service uwsgi restart
    

    【讨论】:

      猜你喜欢
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      相关资源
      最近更新 更多