Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 11, 2013 23:34:24

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставить сервер по умолчанию использовать Python3

Сломал голову, разбираясь в настройках апача для решения казалось бы такой простой задачи. Уже подумываю о том, чтобы тупо перейти на uWSGI который позволяет при заупуске явно указать виртуальное окружение, но хочу попробовать все таки добить эту тему именно с апачем.

Я учу Питон всего месяц, до этого хорошо знал только клиентские языки программирования actionscript и javascript Очень надеюсь на вашу помощь. Итак первое что мне не совсем понятно это, как собственно заставить апач запускать питон с конкретного виртуального окружения. Насколько я понял из слайдов с одной австралийской конференции чтобы вся система работала именно с виртуальным окружением его нужно активировать. После автивации при запуске python я вижу что система работает именно с установленным в виртуальном окружении питоном ios.prefix также укрепляет мою уверенность в правильном понимании происходящего. Но почему тогда апач после рестарта продолжает запускать с питоном указанном в PYTHONHOME

На самом деле, у меня на сервере всего один проект и я не собираюсь разворачивать на нем несколько сайтов с разными версиями питона так что меня вполне устроит и то, что апач будет запускать нужный питон установленный в традиционную папку. Но мне нужен именно третий питон, пусть он даже будет не из виртуального окружения.

Вообщем моя задача на данном этапе любым доступным способом заставить апач работать с третьим питоном по возможности не меняя PYTHONHOME и PYTHONPATH и если уж ничего не поможет то тогда поменять эти переменные, но так чтобы ничего не поломалось

Отредактировано in (Сен. 11, 2013 23:36:20)

Офлайн

#2 Сен. 12, 2013 08:12:49

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Как заставить сервер по умолчанию использовать Python3

Вы бы для начала написали, что у вас за ОС. Далее, как именно вы пытаетесь работать с python из apache: mod_python или mod_wsgi?

Отредактировано lorien (Сен. 12, 2013 08:13:30)

Офлайн

#3 Сен. 12, 2013 09:58:47

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставить сервер по умолчанию использовать Python3

У меня убунту 12.04 mod_wsgi

Еще добавлю что виртуальное окружение находится по следующему абсолютному пути : /virtualenvs/simpleboard

Отредактировано in (Сен. 12, 2013 10:27:08)

Офлайн

#4 Сен. 12, 2013 11:25:45

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Как заставить сервер по умолчанию использовать Python3

Может быть, это поможет: http://code.google.com/p/modwsgi/wiki/VirtualEnvironments

Офлайн

#5 Сен. 12, 2013 12:27:13

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Как заставить сервер по умолчанию использовать Python3

in
У меня убунту 12.04 mod_wsgiЕще добавлю что виртуальное окружение находится по следующему абсолютному пути : /virtualenvs/simpleboard

Ставишь python3 в виртуальное окружение, потом в wsgi файле, который нужен для запуска добавляешь в самый верх эти две строчки

activate_this = '/virtualenvs/simpleboard/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

Потом в апаче нужно добавить что-то вроде
WSGIScriptAlias / /путь до wsgi файла/index.wsgi

Вот реализация для фласка http://flask.pocoo.org/docs/deploying/mod_wsgi/



Офлайн

#6 Сен. 14, 2013 17:35:29

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Как заставить сервер по умолчанию использовать Python3

plusplus

Благодарю покорно, у меня по какой-то причине все это не сработало и я в итоге перекомпомпилировал mod_wsgi

Офлайн

#7 Сен. 14, 2013 23:27:24

SoT
Зарегистрирован: 2012-12-12
Сообщения: 68
Репутация: +  4  -
Профиль   Отправить e-mail  

Как заставить сервер по умолчанию использовать Python3

Может на внешнем сервере всё немного подругому но на локальном компьютере при создании виртуального окружения можно передать параметром -p версию питона которая будет использоваться в проекте :
virtualenv -p /usr/bin/python2.7
А вот ссылочка как создавать несколько виртуальных окружений и активировать их http://blog.102web.ru/howto/django-virtualenv/ ( пригодиться для экспериментов )

Офлайн

#8 Сен. 15, 2013 19:20:55

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Как заставить сервер по умолчанию использовать Python3

SoT
А вот ссылочка как создавать несколько виртуальных окружений и активировать их http://blog.102web.ru/howto/django-virtualenv/ ( пригодиться для экспериментов )

Сам так раньше делал, но проще, мне кажется, пакетом поставить virtualenvwrapper сразу (sudo apt-get install virtualenvwrapper), и сразу использовать команды workon, mkvirtualenv и т.д., без редактирования скриптов.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version