我有一个网站说 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 很可能与您使用的不一样。