python-devel-tools

Jakub Piotr Cłapa loc w toya.net.pl
Nie, 2 Maj 2004, 12:42:12 CEST


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.

>>>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-

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.

>>>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 
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.

-- 
z wyrazami szacunku,
Jakub Piotr Cłapa



Więcej informacji o liście dyskusyjnej pld-devel-pl