Уведомления

Группа в Telegram: @pythonsu

#1 Июль 17, 2008 12:58:21

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Две версии питона

cybergrind
эм..
2 shiza: это вы конечно зарулил глобально… вы вкурсе что переменные и т.п. глобально меняються только после перезагрузки? (а вот без перезагрузки?)
Это смотря как посмотреть.
cmd например перечитывает при запуске начальные значения переменных окружения.

Запускаю CMD
Смотрим PATH: PATH=C:\PROGRA~1\COMMON~1\GTK\2.0\bin;C:\WINDOWS\system32;C:\WINDOWS;c:\Python25;c:\
Закрываю CMD

Меняю в Системе путь к питону на c:\Python24

Запускаю CMD
глядим PATH: PATH=C:\PROGRA~1\COMMON~1\GTK\2.0\bin;C:\WINDOWS\system32;C:\WINDOWS;c:\Python24;c:\
Питон не запускается (он меня стоит только 2.5)



Отредактировано (Июль 17, 2008 13:05:48)

Офлайн

#2 Июль 17, 2008 13:13:40

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Две версии питона

cybergrind
еще страшнее вариант - скрипт запускает другой скрипт через os.system('python blahblahblah') как менять питоны под виндой?
Мне кажется так надежнее:
python_path = “c:\\python24\\”

os.system(python_path + ‘python blahblahblah’)



Офлайн

#3 Июль 17, 2008 13:44:04

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Две версии питона

ага… вот только есть одна проблема - я знаю как сделать правильно, но я немогу заменить пару сотен таких мест в уже работающей проге

оО… проверил, оказалось что неработает… потом вспомнил что запускаю консоль через другую прогу =) и она пишет ессно свои переменные окружения…. shiza - извиняюсь, я был неправ… теперь наткнулся на такую штуку…. если буду запускать скрипт из другой проги, то она будет добавлять свои переменные, а чтобы запахали новые переменные - надо перезапускать проги.

интересна еще одна вещь: как програмно изменить переменную, так что бы оно было идентично аналогичной процедуре ручками в system properties?



Офлайн

#4 Июль 17, 2008 16:55:03

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Две версии питона

cybergrind
ага… вот только есть одна проблема - я знаю как сделать правильно, но я немогу заменить пару сотен таких мест в уже работающей проге
Можно попробовать метод Find&Replace, при каждой замене, прикидывая на глаз - корректно или нет получилось.
Как-нибудь типа так:
“os.system(” -> “os.system(PYTHON_PATH + ”

cybergrind
оО… проверил, оказалось что неработает… потом вспомнил что запускаю консоль через другую прогу =) и она пишет ессно свои переменные окружения…. shiza - извиняюсь, я был неправ… теперь наткнулся на такую штуку…. если буду запускать скрипт из другой проги, то она будет добавлять свои переменные, а чтобы запахали новые переменные - надо перезапускать проги.
Тады ой.

Но можно такой кривой костыль придумать:
Переименовать python.exe в например python25.exe
Положить в папку с питоном файл python.bat. Который будет внутри себя ченибудь думать (в зависимоти от внешних условий, или еще как), и вызвать уже нужную версию питона. Можно даже его в процессе работы программы перезаписывать на нужную версию.



Офлайн

#5 Июль 17, 2008 17:10:24

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Две версии питона

Но можно такой кривой костыль придумать:
Переименовать python.exe в например python25.exe
Положить в папку с питоном файл python.bat. Который будет внутри себя ченибудь думать (в зависимоти от внешних условий, или еще как), и вызвать уже нужную версию питона. Можно даже его в процессе работы программы перезаписывать на нужную версию.
Зачем так извращатся? Достаточно в path прописать папку “python” а инсталяции называть python24 python3000 etc. А потом только делать софтлинк “python” на нужную версию. Я так для джанги стабильной/из транка делаю…
Эээ, я посмотрел на описание - изврат не хуже получился хе хе хе :)

Отредактировано (Июль 17, 2008 17:13:41)

Офлайн

#6 Июль 17, 2008 17:30:15

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Две версии питона

shiza
Положить в папку с питоном файл python.bat. Который будет внутри себя ченибудь думать (в зависимоти от внешних условий, или еще как), и вызвать уже нужную версию питона.
Не очень прокатывает, если скрипту передаются аргументы коммандной строки.
Конечно, можно в command файле вбить:
python25.exe %1 %2 %3
Но в этом случае количество аргументов ограничивается девятью :(



Офлайн

#7 Июль 17, 2008 18:28:24

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Две версии питона

ZAN

c:\python25\python25.exe %*
решает =)



Офлайн

#8 Июль 17, 2008 19:32:59

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Две версии питона

Блин, все гениальное - просто :)



Офлайн

#9 Июль 18, 2008 14:37:19

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Две версии питона

офф-топ: по таким штукам имхо надо уже faq делать =) тут рецептов на разные грабли уже много насобиралось



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version