Luogo appropriato per archiviare moduli Python personalizzati su Linux


1

Sto cercando di capire dove e come sono installati e archiviati i pacchetti Python su Linux e trovare la posizione migliore per archiviarli. Il mio repo è Debian Wheezy.

Vorrei memorizzare tutti i miei moduli Python personalizzati in una cartella.

Sono confuso, perché

1. Posso vedere alcuni pacchetti (installati con apt-get), come pygame in tutti i seguenti posti:

  • / Usr / share / pyshared / pygame
  • /usr/lib/pyshared/python2.7/pygame
  • /usr/lib/pyshared/python2.6/pygame
  • /usr/lib/python2.7/dist-packages/pygame
  • /usr/lib/python2.6/dist-packages/pygame

Con alcuni file collegati da pyshared - & gt; a lib/python2.7/dist-packages

2. Alcuni altri pacchetti sono installati su /usr/share/pyshared e quindi collegato a /usr/lib/python2.6 e 2.7.

3. Infine, quando installo qualcosa con easy_install in cui entra /usr/local/lib/python2.7/dist-packages/ in qualcosa.

In termini di tutto questo caos, cosa credi sia il modo giusto per mantenere i moduli personalizzati e qual è il miglior formato di file per loro? Se i singoli moduli di file dovrebbero essere chiamati something.py mentre più moduli di file dovrebbero essere in una cartella con a __init__.py in loro? È giusto? C'è qualche ragione per mantenere anche i moduli a file singolo nelle cartelle?

E soprattutto dove dovrei tenerli? /usr/local/lib/python2.7/my-packages/o all'interno di dist-packages?


Ho spesso avuto questa domanda o una sua variazione. Mi sembra particolarmente importante (pensando come amministratore di sistema) in termini di mantenere i propri sistemi prevedibili e comprensibili per gli altri che potrebbero doverli gestire. Essenzialmente la domanda è "qual è il convenzione accettata per localizzare pacchetti personalizzati? ". Purtroppo devo ancora ottenere una buona risposta, e il popolo Python sembra averlo considerato una domanda stupida, ma penso che questo sia parte della causa del" caos "che descrivi. non 'cosa funzionerà?' ma 'che cosa è meno sorprendente?'.
robo

Risposte:


1

Puoi tenerli dove vuoi, a condizione di cambiare $ PYTHONPATH di conseguenza. Non li metterei in / usr / lib / perché è riservato ai file che appartengono ai pacchetti .deb e può essere facilmente disinstallato da dpkg / apt-get. Se si desidera mantenere il sistema pulito, naturalmente.

Hai ragione riguardo ai singoli moduli di file.

Se fossi in te, li metterei in / opt / my-python-packages o ~ / my-python-packages - per distinguere tra i pacchetti di terze parti installati da easy_install e il mio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.