[python] PYTHONPATH

Hynek Fabian hynek.fabian na firma.seznam.cz
Pátek Leden 20 20:35:25 CET 2012


> Ale jasne,
> Resit, jak to delaji jine unixove programy je sice zajimavy, ale cekal bych, ze na python ml se bude radit standardni reseni pythonu, ne miliony ostatnich. 
To je špatně na tolik způsobů že ani nevím kde začít…

Za prvé, standartní pythoní způsob je PYTHONPATH (a .pth, ale to je spíš
bokovka), to je zdokumentovaná součást interpretru. Virtualenv je zvlášt
balený wrapper, který dokonce ani není ve standartní knihovně.

Za druhé, nejsou žádné miliony ostatních, ale jen jeden způsob který
používají miliony programů: cesty oddělené dvojtečkou v proměnné
prostředí. Dokonce i Java se toho drží, a to už je tedy něco!

Za třetí to celé má důvod, pokud "standardni reseni pythonu"  nebude
totéž jako "jak to delaji jine unixove programy" tak máš zásadní
problémy s interoperatibilitou. Představ si to naopak – když ty budeš
potřebovat z pythonu spustit program v javě nebo ruby, je jednodušší
sáhnout známým způsobem do prostředí nebo zkoumat jaký speciální nástroj
si jeho autoři zase vymysleli? (nápověda: je to chyták)


> Ale co. Balte si zavislosti na uroven svyho baliku, pouzivejte sys.path.insert, reste si neexpanzi promennych v cronu a tvarte se, ze venv je slozity, resi jine problemy a ignorujte, co se v python deployment svete deje poslednich pet let.
Tady už odbočujeme od tématu takže se směle pustím do subjektivních
soudů: IMO Python deployment je totéž jako Java deployment nebo PHP
deployment – nesmysl.
Slušně vychovaný linuxový program (a programátor) se neopájí představou
že  počítač je bitevní pole na kterém jeho milovaný jazyk válčí s jinými
jazyky, alébrž deployuje tak jak to bůh chtěl pomocí balíčkovacího
systému. Tím nechci říci že si každou kravinu balím :-) ale že strkání
blbin do /usr/local se nebojím nazvat pravým jménem – prasení.
Ale co. Používej si svůj "deplyment", řeš si (ne)sdílení svých knihoven
po svém a tvař se že standartní vlastnosti operačního systému jsou
složité a ignoruj co se v linuxovém světě děje posledních dvacet let.



Další informace o konferenci Python