CGI и pyenv

funnywheel

WordPress developer
Регистрация
6 Авг 2010
Сообщения
255
Реакции
219
Вопрос от нуба в python
Есть хотелка запускать скрипт на питоне 3 через CGI
вхост настроил, скрипт доступен и отрабатывает, если постучаться на него из браузера.

По умолчанию в debian 7 установлен python 2.7.3
Скрипт планируется на python 3.4
Локально использовал pyenv для управления версиями питона
На сервере поставил pyenv, установил pyenv local 3.4.4
Из консоли скрипт выполняется, интерпретатор используется 3.4.4, как и должно быть
Код:
$ python test.py
Hello, World!

А вот с выполнением CGI скриптов я как-бы совсем не сталкивался.
Первой строкой скрипта мы указываем путь к интерпретатору, т.е. в случае с использованием встроенного это будет
Код:
#!/usr/bin/python

Мне же нужно, чтобы скрипт выполнялся из установленной мной версии.
Результат выполнения
Код:
$ which python
/home/%username%/.pyenv/shims/python

Указывая в файле скрипта этот адрес интерпретатора нифигашеньки жизнь не становится лучше, по прежнему http code 500

Тем не менее, в этом-же скрипте если оставить код, в духе:
Код:
#!/usr/bin/python
print "Hello, world!"

Все отрабатывает, как видно, исходя из синтаксиса - отрабатывает питон версии 2

Вопрос #1: как эту дичь уговорить работать?
Вопрос #2: может есть более удобные/надежные решения для управления версиями питона? (аргументы пж, не надо такого, как "я юзаю XXX и все, хз почему")
 

gear

Писатель
Регистрация
21 Фев 2013
Сообщения
8
Реакции
4
Накати с реп 3.4. при этом 2.7 никуда не денется. Затем в зависимости от того какая версия нужна в начале скрипта пишешь
Код:
#!/usr/bin/python2
или
Код:
#!/usr/bin/python3
У меня, например, вот такие варианты доступны при том что все установлено из реп:
Код:
└► locate python | grep 'usr/bin'
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python3
/usr/bin/python3.5
/usr/bin/python3.5m
/usr/bin/python3m
└►
 
Сверху