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