[python] Mobilni python

superman feed na centrum.cz
Pondělí Říjen 16 10:00:18 CEST 2006


>>Takže závěr je, že pokud Vám v PYTHONPATH nějaký modul chybí, klidně
>>python použije knihovny z registrového nastavení.
> 
> 
> To by snad nikdy nemelo ani stat! Kazdy poradny clovek si preci nejprve  
> program spusti na nejakem testovacim
> stroji, kde bud python neni, nebo kde instalacni proste prejmenuje  
> C:\Pythonxx.

Ale ono to chodit může na testovacím stroji bez Pythonu!!! Jenže problém 
je, že mnohé knihovny zkouší naimportovat různé moduly, které když se 
nezdaří, tak se z toho zotaví a jedou dál. Třeba mysql driver se snaží 
naimportovat mx, a pokud není, tak z toho nedělají vědu, odchytí výjimky 
a obejdou se bez něho.

To znamená, že jakmile otestuji program na počítači s Pythonem - chodí a 
nepoužívá mx. Jakmile otestuji program na počítači bez Pythonu - chodí a 
nepoužívá mx. Ale jakmile se program dostane na stroj, kde je globální 
instalace Pythonu, pak program použije globální instalaci mx.

Prostě pokud neprojdete zdrojáky všech knihoven, nemáte šanci všechno 
odchytit. Prostě narážíte na základní problém testů, že dokonalý test je 
nemožný bez znalosti vnitřních algoritmů.

Já nevím, co všechno obsahuje každá knihovna, kterou jsem použil a 
procházení je poněkud časově náročnější. Sice možná lze použít něco jako

grep *.py import

ale ani to neodchytí zcela vše

Miloslav Ponkrác


Další informace o konferenci Python