Pregunta

Este debería ser un escenario común, pero todavía no pude encontrar ninguna publicación relevante.

Planeo implementar una biblioteca de Python (supongo que lo mismo se aplica a las aplicaciones normales) que utiliza algunas imágenes y otros archivos de recursos.¿Cuál es la ubicación estándar para dichos artículos?Me imagino, para proyecto. Foo, las opciones serían

  • Tener resources directorio en el repositorio de origen y luego mover archivos a /usr/share/foo/
  • Coloque los recursos directamente dentro del paquete de Python que se encuentra debajo /usr/lib/python-<version>/foo/

¿Alguna sugerencia?

Editar: Como se sugirió, aclarar que la plataforma principal en la que se ejecutará es Linux.

¿Fue útil?

Solución

Esta pregunta es algo incompleta, debido a una respuesta adecuada dependerá del sistema operativo subyacente, ya que cada una tiene su propio modus operandi. En Linux (y sistemas operativos más basado en UNIX), por ejemplo / usr / share / foo o / usr / local / share / foo sería la norma. En OS X que puede hacer lo mismo, pero yo pensaría "/ Library / Application Support / Foo" (aunque eso es por lo general para almacenar los ajustes y todo eso) sería el lugar para poner este tipo de cosas, aunque si estás escribiendo bibliotecas siguiendo el "marco" idea, todos los recursos se incluyen en la /Library/Frameworks/Foo.Framework" ... Aplicaciones en OS X, por otro lado debe mantiene allí todos los recursos dentro del directorio de recursos en el interior Foo.app

Otros consejos

Colocamos archivos que no sean .py /opt/foo/foo-1.2/...

Excepto, por supuesto, para los medios estáticos servidos por Apache, que van a /var/www/html/foo/foo-1.1/media/...

Excepto, por supuesto, los archivos de configuración específicos del cliente.Ellos van a/var/opt/customer/foo/...

Siguen los estándares de Linux tal como yo los entiendo.

Tratamos de mantenernos alejados de /usr/lib/ y /lib tipos de ubicaciones porque se sienten como parte de la distribución.Nos inclinamos hacia /opt y /var porque están claramente separados de los directorios de la distribución de Linux.

El estándar La ubicación es donde van tus bibliotecas estándar.Pero, por lo que has escrito, no me parece que quieras tener tu biblioteca de Python allí.Creo que deberías probar entorno virtual.

Si no quieres pasar por todos los problemas (bueno, en realidad sólo equivale a sudo easy_install virtualenv para usted), podría intentar simplemente volcar su biblioteca de Python en cualquier directorio de su ~/ y hacer algo parecido a

import sys
sys.path.append( '/full/path/to/your/lib/goes/here')

a cualquier aplicación determinada que utilice su lib.

Tenga en cuenta que los ejemplos proporcionados son sólo para fines de prueba.Para cualquier cosa en vivo, te recomendaría que uses distutil.Se dan ejemplos de uso. aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top