[Python] Cartelle di Python su linux

Marco Giusti marco.giusti a gmail.com
Ven 30 Nov 2012 18:41:47 CET


On Fri, Nov 30, 2012 at 05:13:11PM +0000, piergiorgio pancino wrote:
> Ciao,
> forse è più una domanda di linux che non di python... comunque...
> potreste spiegarmi brevemente come si organizzano i file e le librerie
> su linux?  Su windows mi è chiaro nel senso che è tutto con dentro la
> cartella di Python e le librerie aggiunte sono su site-packages, ma su
> linux? Vedo che viene spezzata la parte di file utente e il software
> in se.

in breve:

	python -c 'import sys; sys.path'

queste sono tutte le directory dove vengono cercati i moduli python. In
realtà è ben più crudele e i moduli possono trovarsi anche altrove
oppure non trovarsi affatto sul computer[1]. per approfondire,
pep-420[2].

[1] http://pypi.python.org/pypi/urlimport/
[2] http://www.python.org/dev/peps/pep-0420/

> Dove devo mettere mano se voglio modificare le librerie? E i file
> compilati in C dove sono?

dipende quali librerie vuoi modificare. chiamiamoli moduli da qui in
avanti. se il modulo non fa' parte della libreria standatd di python e
hai possibilità semplicamente disinstallalo e installa la tua versione
modificata. in caso contrario puoi "semplicemente" rimpiazzare una
funzione o classe con la tua versione aggiornata:

	import zazza
	zazza.funzione_cool = funzione_piu_cool

ma in questo caso preparati ad essere colto da tarantismo.

In generale su linux i moduli possono essere "di sistema", ovvero
installati attraverso i vari tool della tua distribuzione (i.e. in
debian: sudo apt-get install python-lxml) oppure puoi installarli nella
tua home e istruire l'interprede su dove andare a cercarli. io usavo
fare così:

	$ mkdir -p ~/.local/lib/python2.7/site-packages
	$ echo export PYTHONPATH="$HOME"/.local/lib/python2.7/site-packages >> .bashrc

adesso però virtualenv e virtualenv-wrapper sono molto più comodi.

ciao
m.


Maggiori informazioni sulla lista Python