如何更改 CentOS 上通过 apache 执行脚本的 Python 版本?

如何更改 CentOS 上通过 apache 执行脚本的 Python 版本?

我有一个网站说 site.com/weather/a1.py

当我尝试执行此文件时,它显示 Python 版本为 2.6,而如果我通过 Putty 登录终端执行它,它显示 Python 版本为 3.6

有人可以教我如何使用 Python3.6 执行通过 cgi-bin 执行的文件吗?

注意:我最近使用这里更改了我的 Python 版本

答案1

您必须在 apache 中安装适用于 2.6 版的 mod_wsgi apache 模块,这就是 apache 引用旧版 Python 的原因。您可以使用以下命令安装较新版本的 mod_wsgi。

红帽/Centos

列出可用的 mod_wsgi 版本

yum  list *mod_wsgi*

选择正确的版本并使用 yum 安装。

yum install python36u-mod_wsgi

Ubuntu

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

安装成功后重新启动 apache,然后它将在 apache 配置中加载 python 版本 3.x。

专门针对 CentOS

完成上述操作后,你还需要执行以下操作

1.Remove mod_python.so from apache httpd.conf 
2.python.conf might be available either in /etc/httpd/conf or /etc/http/conf.d
3.Comment out all the lines in it
4.Add WSGI alias as mentioned over [here][1]
5.Then restart apache

答案2

首先找到python3.6版本来自哪里:

which python

另外,检查你的 python3 安装在哪里。

which python3

检查使用ls -l以查看任一路径是否为软链接。添加/更改 a1.py 中的第一行以使用适当的 shabang 行。例如

#!/usr/local/bin/python3

请记住,apache 服务器的 PATH 很可能与您使用的不一样。

相关内容