2014-04-15 19 views
26

Ho installato alcuni pacchetti tramite pip install something. Voglio modificare il codice sorgente per il pacchetto something. Dov'è (su ubuntu 12.04) e come faccio a ricaricarlo ogni volta che modifico il codice sorgente ed eseguirlo?Python: come modificare un pacchetto installato?

Attualmente sto modificando il codice sorgente e poi eseguendo python setup.py ancora e ancora, il che risulta essere piuttosto complicato.

+0

'dpkg-query -L ' quindi modificare i file? –

+1

Ubuntu Generico (e mi aspetto anche le versioni più recenti) installare pacchetti pip in /usr/local/lib/python2.7/dist-packages e pacchetti apt in /usr/lib/python2.7/dist-packages –

risposta

4

È possibile modificare i file installati in /usr/local/lib/python2.7/dist-packages/. Si noti che sarà necessario utilizzare sudo o diventare root. L'opzione migliore sarebbe utilizzare virtual environment per il tuo sviluppo. Quindi puoi modificare i file installati con le tue autorizzazioni all'interno del tuo ambiente virtuale.

+1

Sto usando mkvirtualenv, con l'opzione -no-site-packages, installa pip e installa 'something'. tuttavia non vedo dove installa il file all'interno del virtualenv che posso modificare – KJW

23

In realtà, non si dovrebbe mai modificare un pacchetto installato, ma si dovrebbe installare una versione del pacchetto biforcuta.

Se è necessario modificare il codice di frequente, è meglio non installare il pacchetto tramite pip install something e modificare il codice in '.../site_packages/...'

Invece si dovrebbe mettere il codice sorgente sotto una directory di sviluppo e installarla con

python setup.py develop 
# or 
pip install -e path/to/SomePackage 
# Or use a vcs at the first place 
$ pip install -e git+https://github.com/lakshmivyas/hyde.git#egg=hyde 

Inserire le modifiche in un sistema di controllo versione e indicare a pip di installarlo in modo esplicito.

Riferimento: Edit mode

+3

L'ho installato usando 'pip install -e/path/SomePackage /'. Navigo all'interno di questa directory '/ src /' e ho modificato un file. Tuttavia quando eseguo 'SomePackage' dal terminale non riflette questo cambiamento. – KJW

+0

Cosa significa '/ src /'? –

+0

è dove si trova il codice sorgente, ha i file '.py' che ho modificato. – KJW

Problemi correlati