Este módulo es importado automáticamente durante la inicialización.
En versiones anteriores de Python (hasta la 1.5a3 inclusive), los guiones o módulos que necesitaban utilizar módulos específicos de la instalación debían utilizar "import site" en algún lugar cerca del principio del código. Esto ya no es necesario.
Esto agregará las rutas específicas de la instalación a la ruta de búsqueda de módulos.
Empieza construyendo hasta cuatro directorios a partir de una cabecera
y una cola. Para la cabecera, utiliza sys.prefix
y
sys.exec_prefix
; las cabeceras vacías se saltan.
Para la cola, se utiliza la cadena vacía (en Macintosh y Windows) o
se utiliza primero lib/python2.0/site-packages y luego
lib/site-python (en Unix). Para cada combinación cabecera-cola,
se verifica si existe el directorio construido. En tal caso, se añade
la ruta a sys.path
y se inspecciona la ruta en busca de ficheros
de configuración.
Un fichero de configuración de ruta es un fichero de la forma
package.pth. Contiene elementos adicionales (uno por línea)
que se han de añadir a sys.path
. Los elementos inexistentes nunca
se añaden a sys.path
, aunque no se hace ninguna comprobación respecto
a si el elemento es un fichero y no un directorio. No se añade ningún elemento
más de una vez a sys.path
. Las líneas en blanco y las que comiencen por
#
se saltan.
Por ejemplo, supongamos que sys.prefix
y sys.exec_prefix
tienen un valor de /usr/local. La biblioteca de Python 2.0 se
instalaría en /usr/local/lib/python2.0 (donde sólo
los tres primeros caracteres de sys.version
se utilizan para formar
la ruta de instalación). Supongamos que ésta tiene un subdirectorio
/usr/local/lib/python2.0/site-packages con tres
subdirectorios, foo, bar y spam, y dos
ficheros de configuración de ruta, foo.pth y bar.pth.
Supongamos que foo.pth contiene lo siguiente:
# Configuración del paquete foo foo bar bletch
y bar.pth contiene:
# Configuración del paquete bar bar
El resultado sería que se añaden los siguientes directorios a sys.path
,
en el siguiente orden:
/usr/local/lib/python1.5/site-packages/bar /usr/local/lib/python1.5/site-packages/foo
Hay que fijarse en que bletch se omite porque no existe. El directorio bar precede al directoriofoo porque bar.pth está alfabéticamente antes que foo.pth. Por último, spam se omite por no estar mencionado en ningún fichero de configuración de ruta.
Tras estas manipulaciones de la ruta de búsqueda, se intenta importar un módulo denominado sitecustomize, que puede realizar personalizaciones arbitrarias específicas de la instalación. Si al importarlo se genera una excepción ImportError, se le hace caso omiso.
Obsérvese que en algunos sistemas no Unix, sys.prefix
y
sys.exec_prefix
están vacías y se omiten las manipulaciones de la ruta
de búsqueda. No obstante, se intenta importar
sitecustomize.