python-devel-tools

Andrzej Krzysztofowicz ankry w green.mif.pg.gda.pl
Pon, 26 Kwi 2004, 15:08:47 CEST


Jacek Konieczny wrote:
> On Mon, Apr 26, 2004 at 01:54:53PM +0200, Andrzej Krzysztofowicz wrote:
> > Chwila, moment. To o tym, czy cos jest skryptem pythona decyduje NAZWA a nie
> > ZAWARTOSC pliku ? 
> > 
> > Czyli w systemie zawierajacym pythona user nie mozna sobie utworzyc programu
> > (binarnego, skryptu w dowolnym interpreterze) o nazwie np. to.ma.py ktory
> > nie bedzie skryptem pythona i umiesciec go w sciezce ?
> 
> To nie całkiem tak.
> 
> Gdy uruchamiasz skrypt pythona (zaczynający się od #!/usr/bin/python),
> to on zwykle importuje jakieś moduły. Modułów szuka w ścieżce
> wyszukiwania, która domyślnie na pierwszej pozycji zawiera katalog
> w którym leży skrypt. A więc:
> 
> 1. nie jest przeszukiwane całe $PATH
> 2. problem występuje jedynie dla plików *.py które leżą w katalogu gdzie
> są jakieś uruchamiane skrypty pythona i dla których "*" jest nazwą
> któregoś z modułów importowanych przez te skrypty.
> 
> IMHO najprostrzym rozwiązaniem jest nie umieszczenie plików
> z rozszerzeniem *.py w $PATH. Skoro to ma być odpalane jako komenda, to
> *.py tylko przeszkadza. W większości wypadków właściwy skrypt może być
> gdzieś w %{_datadir}/%{name}, a w $PATH wystarczy następujący skrypcik
> (bez rozszerzenia, '%{_datadir}/%{name}' oczywiście musi być podmienione
> na właściwą ścieżkę):
> 
> #!/usr/bin/python
> 
> import sys
> sys.path[0]='%{_datadir}/%{name}'
> import skrypt
> 
> Czasem może być potrzeba odpalenia tu jakiejś funkcji (gdy właściwy
> skrypt importowany jako moduł sam z siebie nic nie robi).
> Takie rozwiązanie ma jeszcze jedną zaletę - właściwy skrypt może być
> w postaci skompilowanej (*.pyc).

cp -a /bin/false /bin/sys.py
i masz rozwalone wszystkie skrypty w pythonie ?

Coraz bardziej utwierdzam sie w przekonaniu, ze Python jest poroniony,
bo nie umozliwia przyzwoitej separacji nazw.

-- 
=======================================================================
  Andrzej M. Krzysztofowicz               ankry w mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Gdansk University of Technology



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