Agregar permanentemente una ruta de archivo a sys.path en Python

97

Tenía un archivo llamado example_file.py, que quería usar de varios otros archivos, por lo que he decidido añadir example_file.pya sys.pathe importar este archivo en otro archivo para utilizar el archivo. Para hacerlo, ejecuté lo siguiente en IPython.

import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)

Pude ver la ruta que acababa de agregar, y cuando intenté importar este archivo desde otra ruta de directorio como esta:

import example_file

funcionó bien, pero una vez que salí de IPython, lo ingresé nuevamente y verifiqué sys.path, vi que la ruta que había agregado no estaba presente, entonces, ¿cómo agrego una ruta a sys.path permanentemente en Python?

Shiva Krishna Bavandla
fuente
3
Convierta su código en un paquete adecuado, hágalo fácil_instalable y sea feliz por el resto de su vida (en lugar de retoques). Aparte de eso: cada documentación le dice CLARAMENTE que sys.path.append()acepta un directorio que contiene un archivo Y NO UN SOLO CAMINO A UN ARCHIVO.
Andreas Jung
No confunda la ruta del sistema con PYTHONPATH.
Burhan Khalid

Respuestas:

95

Hay algunas maneras. Uno de los más simples es crear un my-paths.ptharchivo (como se describe aquí ). Este es solo un archivo con la extensión .pthque puso en el site-packagesdirectorio de su sistema . En cada línea del archivo, pones un nombre de directorio, por lo que puedes poner una línea allí con /path/to/the/y agregará ese directorio a la ruta.

También puede usar la variable de entorno PYTHONPATH, que es como la variable PATH del sistema pero contiene directorios a los que se agregarán sys.path. Consulte la documentación .

Tenga en cuenta que no importa lo que haga, sys.pathcontiene directorios, no archivos. No puede "agregar un archivo a sys.path". Siempre agrega su directorio y luego puede importar el archivo.

BrenBarn
fuente
1
ok gracias, eso está bien, agregué mi directorio que consiste en un archivo y está funcionando cuando importé el archivo desde otra ubicación, pero el problema cuando salí de ipython y volví a buscar mi ruta, no aparece, No quiero hacerlo cada vez que ingresé el código, quiero agregar la ruta del directorio a sys.path de forma permanente, cómo hacer esto
Shiva Krishna Bavandla
@Kouripm: Su comentario sugiere que en realidad no siguió mi sugerencia, ni las sugerencias en la publicación duplicada vinculada arriba.
BrenBarn
1
El sitepaquete fue perfecto.
Zeinab Abbasimazar
8
solucionó mi problema con sys.path.append('C:\\python34\\lib\\site-packages')gracias!
tylerlindell
Para la posteridad: el .ptharchivo es lo que la documentación del módulo del sitio llama a path configuration file. Nota sobre el archivo de configuración de ruta:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
Minh Tran
1

De esta manera funcionó para mí:

agregando la ruta que más te guste:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

comprobación: puede ejecutar 'exportar' cmd y comprobar la salida o puede comprobarlo usando este cmd:

python -c "import sys; print(sys.path)"
Pandous
fuente