tutorial snake lenguaje instalar descargar python

python - snake - Usando archivos.pth



python tutorial (1)

Estoy tratando de hacer que un módulo sea detectable en un sistema donde no tengo acceso de escritura al directorio global site-packages , y sin cambiar el entorno ( PYTHONPATH ). He intentado colocar un archivo .pth en el mismo directorio que el script que estoy ejecutando, pero parece que se ignora. Por ejemplo, creé un archivo extras.pth con el siguiente contenido:

N:/PythonExtras/lib/site-packages

Pero la siguiente secuencia de comandos, colocada y ejecutada en el mismo directorio, imprime False .

import sys print r"N:/PythonExtras/lib/site-packages" in sys.paths

El único directorio en sys.path al que tengo acceso de escritura es el directorio que contiene el script. ¿Hay otro directorio (actualmente inexistente) donde podría colocar extras.pth y verlo? ¿Hay una mejor manera de hacer esto?

Estoy usando python 2.7 en Windows. Todas .pth preguntas .pth que pude encontrar aquí usan los directorios del módulo del sistema.

Edición: he rastreado el directorio de instalación de Windows por usuario, en %APPDATA%/Python/Python27/site-packages . Puedo colocar un módulo allí y se importará, pero si pongo un archivo .pth allí, no tiene ningún efecto. ¿Realmente se supone que esto no funciona, o estoy haciendo algo mal?


Como se describe en la documentación , los archivos PTH solo se procesan si están en el directorio site-packages. (Más precisamente, se procesan si están en un "directorio de sitios", pero el "directorio de sitios" en sí es una configuración global de la instalación de Python y no depende del directorio actual o del directorio donde reside el script).

Si el directorio que contiene su script está en sys.path , puede crear un sitecustomize.py en ese directorio. Esto se cargará cuando Python se inicie. Dentro de sitecustomize.py , puedes hacer:

import site site.addsitedir(''/some/dir/you/want/on/the/path'')

Esto no solo agregará ese directorio, sino que también lo agregará como un "directorio de sitio", lo que hará que los archivos PTH se procesen allí. Esto es útil si desea crear su propio directorio personal site-packages .

Si solo necesita agregar uno o dos directorios a la ruta, puede hacerlo de manera más simple. Simplemente cree una pequeña biblioteca de Python que manipule sys.path , y luego importe esa biblioteca desde su script. Algo como:

# makepath.py import sys sys.path.append(''/whatever/dir/you/want'') # script.py import makepath

Edición: De nuevo, según la documentación , existe la posibilidad de un directorio específico del sitio en %APPDATA%/Python/PythonXY/site-packages (en Windows). Puede intentarlo, si de hecho tiene acceso de escritura a eso (y no solo a su directorio de script).