python-devel-tools
wrobell
wrobell w pld-linux.org
Nie, 2 Maj 2004, 12:59:09 CEST
On Sun, May 02, 2004 at 12:42:12PM +0200, Jakub Piotr C?apa wrote:
> wrobell wrote:
> >On Sat, May 01, 2004 at 10:37:22PM +0200, Jakub Piotr C?apa wrote:
> >
> >>wrobell wrote:
> >>
> >>>On Sat, May 01, 2004 at 09:06:57PM +0200, Jakub Piotr C?apa wrote:
> >>>>
> >>>>Stwierdzasz ze problemy z wersjami
> >>>>openLDAPa powoduja balagan na FTP, wiec wywalamy openLDAPa z distro?
> >>>
> >>>co ma wiatrak do piernika?
> >>
> >>Chcesz zostawic wielu userow, nie wiedzacych dlaczego nie dziala, na
> >>lodzie.
> >
> >gadasz bzdury. user dostanie komunikat, ze nie moze zostac znaleziony
> >odpowiedni modul.
>
> Ale nie bedzie wiedzial dlaczego, bo tylko u nas tak to bedzie dzialac.
bedzie wiedzial - nie ma ustawionego PYTHONPATH, co jest udokumentowane
w przeciwnosci do tego pseudo-feature obecnego.
> >>>nie dziala
> >>
> >>Ma jakies powazne błędy poza brakiem #!/usr/bin/python na początku? Ja
> >>staram się nie być czepialskim...
> >
> >uruchomiles ten skrypt? nie chodzi mi ani o brak "$!..."
> >ani o brak "import sys", po prostu nie dziala tak jakbys chcial.
> >jesli nazwiesz go timeit.py, to dostaniesz blad o braku funkcji main,
> >pomimo tego, ze modul timeit ma ta funkcje. zgadnij dlaczego?
>
> Szedlbym o zaklad ze dzialalo... Musialem byc rozkojarzony.
>
> #v+
> #!/usr/bin/python
> import sys
>
> arch = sys.path[0]
> del sys.path[0]
> import timeit
> sys.path.insert (0, arch)
> del arch
>
> if __name__ == "__main__":
> sys.exit(timeit.main())
> #v-
dobrze, to teraz przeczytaj pierwszy list w tym watku, dobrze?
> Nijak nie umiem niestety zrobić tak, żeby to był pełnoprawny moduł i
> import timeit w /usr/bin dawał to samo co wszędzie indziej - jeśli
> importuje moduł o nazwie, ktora juz byla importowana, to dostaje modul z
> cache (czyli w tym wypadku sam siebie). Taki bug lub feature, zalezy jak
> na to patrzec. Musimy chyba traktowac moduly jako cos co musi miec
> systemowo unikalne nazwy i tyle (tzn. w katalogach systemowych nie moga
> wystepowac rozne moduly lub programy pythona o tych samych nazwach).
> Inaczej zawsze cos sie bedzie walic.
i to jest wlasnie chore.
> >>>er? komunikat niewiele mówiący? dostanie informacje o tym, że nie może
> >>>znaleźć danego modułu. czego chcieć więcej?
> >>
> >>Dlaczego nie moze? U mojego kumpla dziala! Wszystkim naokolo dziala! W
> >>Windowsach dziala! Co jest?
> >
> >bzdura. uzytkownik dostanie komunikat o braku modulu. man python,
> >ustawi sobie PYTHONPATH i po krzyku.
> >
> >a obecnie... instalujesz ipython-a i nie dziala. dlaczego?
> >stworzylem skrypty o nazwie getpass.py, pdb.py lub mam
> >katalogi email, bsddb, encodings lub hotshot i skrypt nie dziala.
> >dlaczego? ach... proste rozwiaznie - trzeba kombinowac z sys.path
> >(jestem ciekaw gdzie mozna sobie o tym poczytac) :-\
>
> Tez musialem to sam naprawic. Katalogi tak nie dzialaja - musza miec
> __init__.py, zeby byly potraktowane jako moduly (choc cos mi tworzylo
nie. to jest bardziej pochrzanione:
$ mkdir timeit.py
$ python -vv
[snip]
>>> import timeit.py
# trying timeit.so
# trying timeitmodule.so
# trying timeit.py
import timeit # from timeit.py
# wrote timeit.pyc
$ ls -l timeit*
drwx------ 2 wrobell users 1024 May 2 13:00 timeit.py
-rw------- 1 wrobell users 89 May 2 13:00 timeit.pyc
> puste __init__.py, ale to byl chyba "feature" WebWare, nie samego
> Pythona). Po prostu usuniecie "" z sys.path dla wszystkich skryptow w
> systemie to nie jest dobre rozwiazanie tego problemu.
nie widze lepszego. moze tracisz pewna wygode, ale to udogodnienie
nie dziala, a takze wiele psuje w momencie gdy dochodzi do konfliktu
nazw
wrobell <wrobell w pld-linux.org>
Więcej informacji o liście dyskusyjnej pld-devel-pl