[python] Mobilni python
superman
feed na centrum.cz
Pondělí Říjen 16 00:16:02 CEST 2006
> Takže mějme výchozí stav, python nainstalovaný ve windows a mobilní
> python na paměti flash. Můžeš mi prosím předvést ukázku programu, který
> mi z tebou uvedené příčiny nebude fungovat, když ho spustím mobilním
> pythonem? Jestli ano, pak je to věc na bugreport.
Já jsem to schválně zkusil. Tento pokus:
1) Python má v registrech nastaveno, že má cestu na C:\Python24\
2) Nastavil jsem PYTHONPATH na D:\@down\
3) python.exe jsem přesunul do C:\SWAP\
A spustil jsem nástroj, který ukazuje, kde bude pythonovský interpretr
hledat knihovny a jaké se pokusí otevírat soubory. Došel jsem k tomuto:
a) nejdříve python prohledával adresáře zapsané v registrech
0:05:34 python.exe:3064 OPEN C:\PYTHON24\LIB\SITE.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\OS.PYC SUCCESS Options: 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\NTPATH.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\STAT.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\USERDICT.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\COPY_REG.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\TYPES.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\LOCALE.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\CODECS.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\ENCODINGS\__INIT__.PYC 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\ENCODINGS\ALIASES.PYC 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\ENCODINGS\CP1250.PYC 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\WARNINGS.PYC SUCCESS 0:05:34
python.exe:3064 OPEN C:\PYTHON24\LIB\LINECACHE.PYC SUCCESS
b) pak se přesunul do adresářů v PYTHONPATH:
0:05:34 python.exe:3064 OPEN D:\@down\site.pyd NOT FOUND 0:05:34
python.exe:3064 OPEN D:\@down\site.dll NOT FOUND 0:05:34
python.exe:3064 OPEN D:\@down\site.py NOT FOUND 0:05:34
python.exe:3064 OPEN D:\@down\site.pyw NOT FOUND 0:05:34
python.exe:3064 OPEN D:\@down\site.pyc NOT FOUND
c) pak dokonce prohledával soubory v systémovém adresáři Windows !!!:
0:05:34 python.exe:3064 OPEN C:\WINDOWS\system32\python24.zip\
0:05:34 python.exe:3064 OPEN C:\WINDOWS\system32\python24.zip\site.pyd
PATH NOT FOUND Options: 0:05:34 python.exe:3064 OPEN
C:\WINDOWS\system32\python24.zip\site.dll PATH NOT FOUND Options:
0:05:34 python.exe:3064 OPEN C:\WINDOWS\system32\python24.zip\site.py
0:05:34 python.exe:3064 OPEN C:\WINDOWS\system32\python24.zip\site.pyw
PATH NOT FOUND Options: 0:05:34 python.exe:3064 OPEN
C:\WINDOWS\system32\python24.zip\site.pyc PATH NOT FOUND Options:
d) pak se vrátil do registrů a našel knihovny site.pyc a os.pyc tam a
odtud je vzal, to už nebudu vypisovat
e) Pak znovu projel to samé kolečko s dalšími kniovnami.
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í.
Na mě to nepůsobí jako bezproblémově a rozhodně ne dobře, pokud bych se
měl na python spolehnout jako na něco co bych dával mimo svůj počítač.
Miloslav Ponkrác
P.S.: Tímto už to přestávám řešit, prostě tohle je prasečina.
Další informace o konferenci Python