Найти - Пользователи
Полная версия: Две версии питона
Начало » Python для экспертов » Две версии питона
1 2
shiza
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)
shiza
cybergrind
еще страшнее вариант - скрипт запускает другой скрипт через os.system('python blahblahblah') как менять питоны под виндой?
Мне кажется так надежнее:
python_path = “c:\\python24\\”

os.system(python_path + ‘python blahblahblah’)
cybergrind
ага… вот только есть одна проблема - я знаю как сделать правильно, но я немогу заменить пару сотен таких мест в уже работающей проге

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

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

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

Но можно такой кривой костыль придумать:
Переименовать python.exe в например python25.exe
Положить в папку с питоном файл python.bat. Который будет внутри себя ченибудь думать (в зависимоти от внешних условий, или еще как), и вызвать уже нужную версию питона. Можно даже его в процессе работы программы перезаписывать на нужную версию.
Ferroman
Но можно такой кривой костыль придумать:
Переименовать python.exe в например python25.exe
Положить в папку с питоном файл python.bat. Который будет внутри себя ченибудь думать (в зависимоти от внешних условий, или еще как), и вызвать уже нужную версию питона. Можно даже его в процессе работы программы перезаписывать на нужную версию.
Зачем так извращатся? Достаточно в path прописать папку “python” а инсталяции называть python24 python3000 etc. А потом только делать софтлинк “python” на нужную версию. Я так для джанги стабильной/из транка делаю…
Эээ, я посмотрел на описание - изврат не хуже получился хе хе хе :)
ZAN
shiza
Положить в папку с питоном файл python.bat. Который будет внутри себя ченибудь думать (в зависимоти от внешних условий, или еще как), и вызвать уже нужную версию питона.
Не очень прокатывает, если скрипту передаются аргументы коммандной строки.
Конечно, можно в command файле вбить:
python25.exe %1 %2 %3
Но в этом случае количество аргументов ограничивается девятью :(
shiza
ZAN
c:\python25\python25.exe %*
решает =)
ZAN
Блин, все гениальное - просто :)
cybergrind
офф-топ: по таким штукам имхо надо уже faq делать =) тут рецептов на разные грабли уже много насобиралось
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB