in
Сен. 11, 2013 23:34:24
Сломал голову, разбираясь в настройках апача для решения казалось бы такой простой задачи. Уже подумываю о том, чтобы тупо перейти на uWSGI который позволяет при заупуске явно указать виртуальное окружение, но хочу попробовать все таки добить эту тему именно с апачем.
Я учу Питон всего месяц, до этого хорошо знал только клиентские языки программирования actionscript и javascript Очень надеюсь на вашу помощь. Итак первое что мне не совсем понятно это, как собственно заставить апач запускать питон с конкретного виртуального окружения. Насколько я понял из слайдов с одной австралийской конференции чтобы вся система работала именно с виртуальным окружением его нужно активировать. После автивации при запуске python я вижу что система работает именно с установленным в виртуальном окружении питоном ios.prefix также укрепляет мою уверенность в правильном понимании происходящего. Но почему тогда апач после рестарта продолжает запускать с питоном указанном в PYTHONHOME
На самом деле, у меня на сервере всего один проект и я не собираюсь разворачивать на нем несколько сайтов с разными версиями питона так что меня вполне устроит и то, что апач будет запускать нужный питон установленный в традиционную папку. Но мне нужен именно третий питон, пусть он даже будет не из виртуального окружения.
Вообщем моя задача на данном этапе любым доступным способом заставить апач работать с третьим питоном по возможности не меняя PYTHONHOME и PYTHONPATH и если уж ничего не поможет то тогда поменять эти переменные, но так чтобы ничего не поломалось
lorien
Сен. 12, 2013 08:12:49
Вы бы для начала написали, что у вас за ОС. Далее, как именно вы пытаетесь работать с python из apache: mod_python или mod_wsgi?
in
Сен. 12, 2013 09:58:47
У меня убунту 12.04 mod_wsgi
Еще добавлю что виртуальное окружение находится по следующему абсолютному пути : /virtualenvs/simpleboard
plusplus
Сен. 12, 2013 12:27:13
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/
in
Сен. 14, 2013 17:35:29
plusplus
Благодарю покорно, у меня по какой-то причине все это не сработало и я в итоге перекомпомпилировал mod_wsgi
SoT
Сен. 14, 2013 23:27:24
Может на внешнем сервере всё немного подругому но на локальном компьютере при создании виртуального окружения можно передать параметром -p версию питона которая будет использоваться в проекте :
virtualenv -p /usr/bin/python2.7
А вот ссылочка как создавать несколько виртуальных окружений и активировать их
http://blog.102web.ru/howto/django-virtualenv/ ( пригодиться для экспериментов )
plusplus
Сен. 15, 2013 19:20:55
SoT
А вот ссылочка как создавать несколько виртуальных окружений и активировать их http://blog.102web.ru/howto/django-virtualenv/ ( пригодиться для экспериментов )
Сам так раньше делал, но проще, мне кажется, пакетом поставить virtualenvwrapper сразу (sudo apt-get install virtualenvwrapper), и сразу использовать команды workon, mkvirtualenv и т.д., без редактирования скриптов.