Domanda

Questo dovrebbe essere uno scenario comune, ma non è stato possibile trovare posto in questione ancora ..

Ho intenzione di distribuire una libreria Python (immagino che lo stesso vale per le applicazioni regolari) che si avvale di alcune immagini e altri file di risorse. Qual è la posizione standard per tali articoli? Immagino, per il progetto Foo, le scelte sarebbero

  • Avere resources directory nella repository di origine e quindi spostare i file /usr/share/foo/
  • campo risorse direttamente all'interno del pacchetto python che va sotto /usr/lib/python-<version>/foo/

Qualche suggerimento?

Modifica:. Come suggerito, chiarendo che la piattaforma di questo formato sarà in esecuzione su Linux è

È stato utile?

Soluzione

Questa domanda è in qualche modo incompleto, perché una risposta adeguata dipenderebbe dal sistema operativo sottostante, come ognuno ha un proprio modus operandi. In Linux (e la maggior parte basati su Unix sistemi operativi), per esempio / usr / share / pippo o / usr / local / share / foo sarebbe lo standard. In OS X si può fare lo stesso, ma vorrei pensare "/ Library / Application Support / Foo" (anche se questo è di solito per memorizzare le impostazioni e quant'altro) sarebbe il posto per mettere queste cose, anche se si sta scrivendo le librerie in seguito alla "quadro" idea, tutte le risorse sarebbero state incluse nella /Library/Frameworks/Foo.Framework" ... applicazioni su OS X d'altra parte dovrebbe mantiene tutte le risorse là all'interno della directory delle risorse all'interno Foo.app

Altri suggerimenti

Abbiamo messo i file non .py in /opt/foo/foo-1.2/...

Ad eccezione, naturalmente, per i supporti statici che è servita da Apache, che va a /var/www/html/foo/foo-1.1/media/...

Ad eccezione, ovviamente, per i file di configurazione specifici del cliente. Loro vanno a /var/opt/customer/foo/...

Quelli seguire gli standard di Linux come li capisco.

Cerchiamo di stare lontano da /usr/lib/ e /lib tipi di posizioni, perché quelli si sentono come se fossero parte della distribuzione. Abbiamo propendere verso /opt e /var perché sono nettamente separati dalle directory distro Linux.

standard è il luogo dove il vostro librerie standard di va. Ma non suona a me da quello che hai scritto, che si desidera che il pitone LIB lì. Penso che si dovrebbe provare virtualenv .

Se non si vuole andare attraverso tutti i problemi (beh, in realtà equivale solo per sudo easy_install virtualenv per voi), si potrebbe provare a scaricare solo il tuo lib python in qualsiasi dir nella vostra ~/ e fare qualcosa lungo le linee di

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

per qualsiasi applicazione che utilizza il lib.

Si prega di tenere a mente, che gli esempi forniti sono solo test-scopi. Per tutto live-ish, mi sento di raccomandare di utilizzare distutil . Esempi di utilizzo sono riportate qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top