Sto cercando di rendere un modulo rilevabile su un sistema in cui non dispongo dell'accesso in scrittura alla directory globale site-packages
e senza modificare l'ambiente (PYTHONPATH
). Ho provato a inserire un file .pth
nella stessa directory di uno script che sto eseguendo, ma sembra essere ignorato. Per esempio, ho creato un file extras.pth
con il seguente contenuto:Utilizzo di file .pth
N:\PythonExtras\lib\site-packages
Ma il seguente script, posta ed eseguire nella stessa directory, stampe False
.
import sys
print r"N:\PythonExtras\lib\site-packages" in sys.paths
L'unica directory in sys.path
a cui ho accesso in scrittura è la directory contenente lo script. Esiste un'altra directory (attualmente inesistente) in cui posso inserire extras.pth
e visualizzarla? C'è un modo migliore per fare questo?
Sto usando python 2.7 su Windows. Tutte le domande .pth
qui reperibili utilizzano le directory del modulo di sistema.
Modifica: Ho rintracciato la directory di installazione di Windows per utente, al numero %APPDATA%\Python\Python27\site-packages
. Posso posizionare un modulo lì e verrà importato, ma se metto un file .pth
lì, non ha alcun effetto. Questo non dovrebbe funzionare, o sto facendo qualcosa di sbagliato?
Il problema è che questo è per l'insegnamento di una classe, e sto cercando di farlo funzionare il più vicino al più trasparente possibile. Le persone iniziano sempre un nuovo pitone e si mettono nei guai. Non ci sono alcune cartelle in "Documenti e Impostazioni" che contano come "directory del sito"? I vari programmi di installazione di IIRC metteranno le cose lì - ma non sono sicuro di dove, o se sono esaminati per i file '.pth'. – alexis
Sì, c'è, ed è documentato insieme a tutto il resto su http://docs.python.org/2/library/site.html#site.USER_SITE. Pensavo avessi detto che avevi accesso in scrittura solo alla directory degli script, ma ora vedo che ho letto male. – BrenBarn
Sì grazie, sto cercando di capire quel 'sito.html' è il posto dove guardare. Comunque, mettendo un '.pth' non sembra funzionare ... – alexis