Назад | Перейти на главную страницу

Как изменить мою версию Python в CentOS для скриптов, выполняемых через apache?

У меня есть сайт, на котором написано site.com/weather/a1.py

Когда я пытаюсь запустить этот файл, он показывает версию Python как 2.6, тогда как если я выполняю его, войдя в терминал через Putty, он показывает мне версию Python как 3.6.

Может ли кто-нибудь рассказать мне, как использовать Python3.6 для файлов, выполняемых через cgi-bin?

Примечание: я недавно изменил свою версию Python, используя здесь

Сначала выясним, откуда взялась версия Python 3.6:

which python

также проверьте, где установлен ваш python3.

which python3

Проверить с помощью ls -l чтобы узнать, является ли какой-либо из путей мягкой ссылкой. Добавьте / измените первую строку в a1.py, чтобы использовать соответствующую строку Shabang. Например.

#!/usr/local/bin/python3

Помните, что PATH сервера apache, скорее всего, не совпадает с тем, который вы используете.

У вас должен быть модуль apache mod_wsgi для 2.6 в apache, поэтому apache относится к более старой версии python. Вы можете установить более новую версию mod_wsgi, используя приведенные ниже команды.

Redhat / Centos

Список доступных версий mod_wsgi

yum  list *mod_wsgi*

Выберите правильную версию и установите с помощью yum.

yum install python36u-mod_wsgi

Ubuntu

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

Reatsrt apache после успешной установки загрузит python версии 3.x в конфигурации apache.

Специально для 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