Domanda

Quando si tratta di organizzare i moduli Python, il mio sistema Mac OS X è un casino. Ho pacchetti in giro ovunque sul mio hdd e nessun sistema particolare per organizzarli.

Come si mantiene tutto gestibile?

È stato utile?

Soluzione

Il mio consiglio:

Altri suggerimenti

Oltre a PEP8 e easy_install, dovresti dare un'occhiata a virtualenv. Virtualenv consente di avere più alberi di librerie Python differenti. Al lavoro, utilizziamo virtualenv con un ambiente di bootstrap per impostare rapidamente un ambiente di sviluppo / produzione in cui siamo tutti sincronizzati con le versioni delle librerie w.r.t ecc. In genere coordiniamo gli aggiornamenti delle librerie.

Esistono diverse famiglie di componenti Python.

  1. Il materiale fornito con Python. Questo si prende cura di se stesso.

  2. Il materiale ottenuto con easy_install. Anche questo si occupa di se stesso.

  3. I pacchetti che dovevi ottenere in qualche altro modo, come TARball o checkout SVN. Crea una cartella Components . Inserisci prima i download o gli SVN. Ogni singola volta. Installa da lì.

  4. I pacchetti che hai scritto sono riutilizzabili. Ho una cartella Projects con ogni progetto in quella cartella. Se il progetto è altamente riutilizzabile, ha un setup.py e in realtà eseguo l'installazione come se lo avessi scaricato. Non ne ho molti di questi, ma alcuni. Alcuni potrebbero diventare progetti open source.

  5. Le applicazioni finali che scrivi. Ho una cartella in Progetti con ognuna di queste applicazioni di alto livello. Di solito sono cose grandi e sconclusionate (come i siti Django) e non hanno setup.py . Perché? Spesso sono piuttosto complessi con solo poche installazioni di server da gestire e ognuna di queste installazioni di server è unica. Questi generalmente si basano su PYTHONPATH per identificare le loro parti.

Nota il tema comune. O sono componenti che hai scaricato o progetti su cui stai lavorando.

Inoltre, lo tengo separato (in una misura) dal client. Ho una directory principale di cartelle client, ognuna delle quali ha progetti e ogni progetto ha vendite e consegna. Non tutti i progetti hanno sia vendite che consegne.

Forse PEP8 e easy_install può aiutarti?

Conservo tutta la fonte dei miei pacchetti all'interno di ~ / Packages /, quindi eseguo un'installazione standard con " python2.5 setup.py install " su di essi. Questo si getta in (per me) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. Per lo sviluppo del mio software, ho impostato gli alias per passare da trunk / branch / 1.0, ecc., Pre-prending su PYTHONPATH. (Devo eseguire 'setup.py build_ext --inplace' in ciascuna di queste directory prima che vengano importate correttamente.)

Vale la pena notare che Python2.6 ha un directory dei pacchetti del sito per utente , che potresti trovare più conveniente.

I moduli " Modules " La pagina di documentazione di Python è una guida utile sull'organizzazione del codice, in particolare i "pacchetti" sezioni

Il mio consiglio è di provare a mettere tutto nella vostra directory dei pacchetti del sito, a meno che non abbiate una buona ragione per non farlo. E provo a evitare easy_install perché trovo che tende a incrociare il mio percorso sys.path con le posizioni delle uova, ma sono solo io. Alcune persone lo trovano utile.

Se hai molti programmi che usano librerie diverse che potrebbero essere in conflitto tra loro, potresti anche voler dare un'occhiata a virtualenv .

Ho appena incontrato questo sito da un'altra domanda StackOverflow: http://infinitemonkeycorps.net/docs/pph/ Questo non si limita al semplice posizionamento del modulo, ma una volta inserito lo scrivi come puoi gestire facilmente la documentazione, i test e la distribuzione.

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