python-devel-tools

Jacek Konieczny jajcus w pld-linux.org
Pią, 30 Kwi 2004, 10:32:52 CEST


On Thu, Apr 29, 2004 at 11:21:53PM +0200, wrobell wrote:
> On Wed, Apr 28, 2004 at 02:17:36PM +0200, Jacek Konieczny wrote:
> > On Tue, Apr 27, 2004 at 09:37:56PM +0200, wrobell wrote:
> > > tak sie zastanawiam... moze po prostu wyciac dodawanie aktualnej sciezki
> > > skryptu do sys.path w pythonie? czy to jest tak naprawde potrzebne?
> > 
> > To jest część standardu.
> pytanie gdzie opisanego? :-)
> 
> http://docs.python.org/lib/module-site.html
> 
> > Tego nie można tak po prostu wywalić.
> powoduje to jednak okreslone problemy, jak sie okazuje.

Oraz daje wymierne korzyści (odpalanie skryptów bez instalacji).

> nic z automatu sie tutaj nie szuka. jak wrzucisz biblioteke .so do
> /usr/lib/dziwnasciezka, to musisz sobie dokonfigurowac system
> lub ustawic LD_LIBRARY_PATH albo kombinowac z LD_PRELOAD (czy jak jej tam...).

Ale python z automatu nie szuka "gdzie popadnie", ani nawet w $PATH. On
szuka tam gdzie leży skrypt.

Przed chwilą sprawdziłem i okazuje się, że python szuka tam gdzie
faktycznie leży skrypt, nawet gdy ten został odpalony przez symlink. 
W tym momencie sprawa bardzo się ułatwia - właściwy skrypt dajemy do
innego katalogu - tam gdzie są dodatkowe modułu dla tego skryptu lub do
jakiegoś uniwersalnego "worka" na skrypty w pythonie (lepiej nie w
/usr/{lib,share}/python, jeśli to nie jest moduł/pakiet do użycia przez
inne aplikacje), a w $PATH dawać jedynie symlinki do skryptu. Żadnego
$PYTHONPATH nie trzeba wtedy ustawiać, ani sys.path modyfikować w
skrypcie. IMHO bomba.

Przy okazji dowiedziałem się że nie muszę kombinować w moich projektach
pythonowych z modyfikacją sys.path, aby skrypt umieszczony w $PATH
znajdował swoje moduły :-)

Pozdrowienia,
        Jacek



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