【问题标题】:apache2 using python2.7 & I want to use python3.4apache2 使用 python2.7 & 我想使用 python3.4
【发布时间】:2016-10-04 10:30:46
【问题描述】:

我使用 python bottle 和 mod_wsgi 设置我的服务器 我的瓶子脚本都是用python3.4编写的,但是apache2服务器默认使用python2.7.6?

有没有办法让python3.4成为apache2上的默认python

我现在有货

【问题讨论】:

    标签: python apache ubuntu mod-wsgi bottle


    【解决方案1】:

    我想你已经用这个命令为 python2 安装了 mod_wsgi:

    sudo apt-get install libapache2-mod-wsgi
    

    但是如果你想在 python3 中使用 mod_wsgi,你应该使用这个命令安装正确的 mod_wsgi:

    sudo apt-get install libapache2-mod-wsgi-py3
    

    【讨论】:

    • 如果模块 wsgi 尚未启用,您可以使用 sudo a2enmod wsgi 执行相同操作,并使用 sudo systemctl reload apache2.service 重新加载 apache2 服务器
    【解决方案2】:

    要基于每个用户更改 python 版本,您只需在用户的主目录中创建一个别名。打开 ~/.bashrc 文件并添加新别名以更改您的默认 python 可执行文件:

    alias python='/usr/bin/python3.4'
    

    完成上述更改后,重新登录或获取您的 .bashrc 文件:

    $ . ~/.bashrc
    

    检查您的默认 python 版本:

    $ python --version
    Python 3.4.2
    

    在系统范围内更改 python 版本

    要在系统范围内更改 python 版本,我们可以使用 update-alternatives 命令。以root用户登录,首先列出所有可用的python替代品:

    # update-alternatives --list python
    update-alternatives: error: no alternatives for python
    

    上面的错误信息意味着 update-alternatives 命令没有识别出 python 替代品。出于这个原因,我们需要更新我们的替代表并包括 python2.7 和 python3.4:

    # update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
    update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python     (python) in auto mode
    # update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2
    update-alternatives: using /usr/bin/python3.4 to provide /usr/bin/python (python) in auto mode
    

    --install 选项采用多个参数,可以从中创建符号链接。最后一个参数指定它的优先级意味着,如果没有进行手动替代选择,则将设置具有最高优先级编号的替代。在我们的例子中,我们为/usr/bin/python3.4 设置了优先级2,因此/usr/bin/python3.4 被update-alternatives 命令自动设置为默认python 版本。

    # python --version
    Python 3.4.2
    

    接下来,我们可以再次列出所有 python 替代品:

    # update-alternatives --list python
    /usr/bin/python2.7
    /usr/bin/python3.4
    

    从现在开始,我们可以随时使用以下命令在上面列出的 python 替代版本之间切换并输入选择编号:

    # update-alternatives --config python
    

    【讨论】:

    • 您仍然需要安装针对所需 Python 版本编译的 mod_wsgi 版本。你不能让它使用与编译时不同的版本。
    • @GrahamDumpleton 感谢您的添加,是的,您是对的,我说的是在服务器内部有两个版本,但是我会按照您提到的那样修改答案)
    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2014-11-16
    • 2023-04-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多