C'è un modo per comunicare a Python ulteriori posizioni site-packages
senza modificare gli script esistenti?Configurazione di Python per l'utilizzo di percorsi aggiuntivi per i pacchetti del sito
Sul mio server CentOS 5.5 ho un'installazione Python 2.7 installata in /opt/python2.7.2
e c'è una cartella site-packages
allo /opt/python2.7.2/lib/python2.7/site-packages
.
La ragione di ciò è che non volevo disturbare l'installazione Python 2.4 esistente fornita con la distribuzione 5.5.
Tuttavia un'applicazione Python di terzi ha anche aggiunto una cartella site-packages
a: /usr/local/lib/python2.7/site-packages
e si è installata in quella posizione.
Questa è in parte colpa mia perché non ho modificato lo dell'applicazione Makefile
prima dell'installazione, tuttavia non c'è molto che possa fare ora.
So che posso fare questo:
import sys; sys.path.insert(0, "/usr/local/lib/python2.7/site-packages")
Tuttavia sarebbe coinvolgermi rintracciare ogni script e l'aggiunta di cui sopra, che non è l'ideale dovrebbe esserci aggiornamenti in futuro.
Per ovviare a questo ho creato un link simbolico nella /opt/python2.7.2/lib/python2.7/site-packages
alla posizione di questa applicazione di terze parti:
ln -sf /usr/local/lib/python2.7/site-packages/theapp /opt/python2.7.2/lib/python2.7/site-packages/theapp
Questo sembra funzionare bene, ma mi chiedo se c'è un modo migliore?
Questo funziona, ma ho deciso di mordere il proiettile e correggere la distribuzione. Ma grazie comunque, utile sapere per il futuro. – Kev
Aggiunge il percorso alla * fine * del percorso python. Cosa succede se vuoi che i tuoi pacchetti di siti personalizzati vengano prima di tutto? Ho sperimentato un file sitecustomize.py con un certo successo, ma sembra che ci siano casi limite in cui semplicemente manipolare il percorso Python non è sufficiente. – wryfi