2009-09-02 19 views
6

Los directorios enumerados en mi archivo de configuración .pth no aparecen en sys.path.Los archivos Python .pth no funcionan

El contenido del archivo de configuración, el nombre some_code_dirs.pth:

/home/project 

Caminos para el archivo:

/usr/lib/python2.6/site-packages/some_code_dirs.pth 
/usr/lib/python2.6/some_code_dirs.pth 

Comprobar en variables sys en el intérprete de Python:

>>> print sys.prefix 
'/usr' 
>>> print sys.exec_prefix 
'/usr' 

Todo esto parece como se requiere en Python documentation, pero sys.path doesn ' t incluye el directorio/home/project.

Tenga en cuenta que el intérprete hace añadir el directorio después:

>>> site.addsitedir('/usr/lib/python2.6/site-packages') 

Qué me estoy perdiendo aquí?

+1

Por favor, incluya el valor de 'sys.path' –

Respuesta

4

¿Qué sistema operativo está utilizando? En mi sistema Ubuntu 9.04 ese directorio no está en sys.path. Intenta ponerlo en /usr/lib/python2.6/dist-packages. Observe que es dist en lugar de sitio.

+0

Sí, Ubuntu hace algunas cosas extrañas y enrevesadas con las rutas de biblioteca de Python para tratar de que se ajuste a su sistema de empaquetado. Muy poco está en el mismo lugar en comparación con una instalación estándar de compilación por defecto de Python. :-( – bobince

+1

Eso funcionó: con el archivo .pth en dist-packages,/home/project_root aparece en sys.path en el intérprete. /usr/lib/python2.6 _is_ en sys.path y a Copia del archivo .pth está en ese directorio, así que no entiendo por qué Python no lo detecta. Supongo que también es un problema de configuración de Ubuntu. No soy más que un huevo, pero me parece extraño un conjunto de opciones por parte de la gente de Ubuntu. – chernevik

+0

Bueno, no creo que el intérprete de Python importe .pth archivos de cada ruta en sys.path. –

0

Hace un tiempo tuve similar problem. Verifique la codificación de su archivo pth. Parece que los archivos pth se ignoran silenciosamente si están codificados en UTF-8 con BOM.

+0

Eso sería comprensible, ya que "UTF-8 con BOM" es falso y no compatible con ASCII (que es lo que son los archivos pth). Es extraño verlo en un cuadro de Linux, ya que normalmente solo están rotas las aplicaciones de Windows que los producen. – bobince

Cuestiones relacionadas