🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
3 messages
3 total messages Started by Seweryn Habdank-Wojewódzki Mon, 25 May 2009 12:26
Utrzymanie i przenoszenie kodu Py 2.x na Py 3.x
#26117
Author: Seweryn Habdank-Wojewódzki
Date: Mon, 25 May 2009 12:26
29 lines
2146 bytes
Witam,

Poprosze specjalistow od Pythona o porade.

Mam napisany zestaw utilkow w Pythonie 2.6.
Teraz chcialbym przeniesc je eksperymentalnie na Pythona 3.x.
Mam jednak nastepujace wymagania.

1. Wersja "release" ma dzialac na 2.x. Moja wersja dodatkowa powinna
dzialac na 3.x. Bardziej szczegolowo: user pracuje z kodem dla 2.x.

2. Czy da sie elegancko w kodzie .py zaznaczyc ktorego pythona nalezy
odpalic?
Chodzi mi o to, ze do tej pory user uruchamial skrypt i nie musial
martwic
sie gdzie i ktory python byl dopasony do skryptu.

3. Jak u siebie na komputerze (+ Windows) prowadzic testy kiedy
python.exe jest zarowno w katalogu Python30 jak i Python26?

4. A moze jest jakis sposob, aby moc odpalic skrypt dla 2.6 na
pythonie 3.0?

Pozdrawiam,

--
|\/\/| Seweryn Habdank-Wojewodzki
 \/\/
       Professionalism in programming - www.accu.org
Re: Utrzymanie i przenoszenie kodu Py 2.x na Py 3.x
#26118
Author: Rob Wolfe
Date: Mon, 25 May 2009 18:23
61 lines
3136 bytes
Seweryn Habdank-Wojewódzki <habdank@gmail.com> writes:

> Witam,
>
> Poprosze specjalistow od Pythona o porade.
>
> Mam napisany zestaw utilkow w Pythonie 2.6.
> Teraz chcialbym przeniesc je eksperymentalnie na Pythona 3.x.
> Mam jednak nastepujace wymagania.
>
> 1. Wersja "release" ma dzialac na 2.x. Moja wersja dodatkowa powinna
> dzialac na 3.x. Bardziej szczegolowo: user pracuje z kodem dla 2.x.

Generalnie od początku to było tak pomyślane, aby po przejściu z 2.5
na 2.6 (najwięcej wysiłku) nie było już problemu przy wspieraniu
równolegle 2.6 i 3.x. W tym celu powstał tool `2to3` [1]_.
Procedura jest taka:
1. W 2.6 odpal testy z opcją "-3". Pojawią się ostrzeżenia jeśli
zostaną znalezione jakieś konstrukcje niekompatybilne z 3.x
i jednocześnie zbyt trudne do naprawy dla `2to3`.
2. Popraw wszystkie te błędy ręcznie aż nie będzie żadnych ostrzeżeń.
3. Zapuść `2to3` na wersji 2.6 i powinieneś dostać 3.x

Później wszelkie zmiany wykonujesz w wersji 2.6, a 3.x generujesz
przy pomocy `2to3`. [2]_

> 2. Czy da sie elegancko w kodzie .py zaznaczyc ktorego pythona nalezy
> odpalic?

Pod Linuksem tak (shebang), a pod Windowsem nie.

> Chodzi mi o to, ze do tej pory user uruchamial skrypt i nie musial
> martwic
> sie gdzie i ktory python byl dopasony do skryptu.

A dlaczego user miałby teraz instalować 2.6 i 3.x jednocześnie,
a nie tylko jeden z nich?
Prawda jest taka, że pod Windą ostatnia zainstalowana wersja Pythona
zostanie powiązana z rozszerzeniem ".py" i wszystko będzie odpalane
przy użyciu tej wersji.

> 3. Jak u siebie na komputerze (+ Windows) prowadzic testy kiedy
> python.exe jest zarowno w katalogu Python30 jak i Python26?

np.:
1. odpalać programy podając pełną ścieżkę do Pythona
2. lub manipulować zmienną PATH tak, aby testowany Python był na niej
   pierwszy
3. lub użyć `virtualenv` [3]_ i jego sprytnego skryptu `activate`
   (na Windzie `activate.bat`)

> 4. A moze jest jakis sposob, aby moc odpalic skrypt dla 2.6 na
> pythonie 3.0?

`2to3` is your friend.

.. [1] http://docs.python.org/library/2to3.html
.. [2] http://docs.python.org/dev/py3k/whatsnew/3.0.html#porting-to-python-3-0
.. [3] http://pypi.python.org/pypi/virtualenv

RW
Re: Utrzymanie i przenoszenie kodu Py 2.x na Py 3.x
#26119
Author: Seweryn Habdank-Wojewódzki
Date: Tue, 26 May 2009 06:45
53 lines
2719 bytes
Witam,

> Generalnie od początku to było tak pomyślane, aby po przejściu z 2.5
> na 2.6 (najwięcej wysiłku)

To zrobilem recznie i na mocy danej mi przez szefa zarzadzilem,
ze utilki (jako nasze wewnetrzne) wymagaja 2.6.

> równolegle 2.6 i 3.x. W tym celu powstał tool `2to3` [1]_.

2to3 wlasnie uzywalem, aby zrobic kod dla 3.x.

> 1. W 2.6 odpal testy z opcją "-3". Pojawią się ostrzeżenia jeśli

OK tego nie znalem.

> Pod Linuksem tak (shebang), a pod Windowsem nie.

A to pech.

> A dlaczego user miałby teraz instalować 2.6 i 3.x jednocześnie,
> a nie tylko jeden z nich?

Chwilowo zakladam ze user uzywa 2.6.

> Prawda jest taka, że pod Windą ostatnia zainstalowana wersja Pythona
> zostanie powiązana z rozszerzeniem ".py" i wszystko będzie odpalane
> przy użyciu tej wersji.

OK.

> > 3. Jak u siebie na komputerze (+ Windows) prowadzic testy kiedy
> > python.exe jest zarowno w katalogu Python30 jak i Python26?
>
> np.:
> 1. odpalać programy podając pełną ścieżkę do Pythona

Tak. To robilem.

> 2. lub manipulować zmienną PATH tak, aby testowany Python był na niej
>    pierwszy

To jest kiepskie dla mnie.

> 3. lub użyć `virtualenv` [3]_ i jego sprytnego skryptu `activate`
>    (na Windzie `activate.bat`)

OK. To spradze wyglada ciekawie. Dziekuje za pomoc i pozdrawiam,

--
|\/\/| Seweryn Habdank-Wojewodzki
 \/\/
       Professionalism in programming - www.accu.org
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads