Non riesco più ad aggiornare un pacchetto già installato in Ubuntu 15.04. Pip funziona ancora, installando il pacchetto in /usr/local/python2.7/dist-packages
, ma il percorso elenca /usr/python2.7/dist-packages
nella parte superiore e persino PYTHONPATH
non può ottenere qualcosa sopra quella linea. Credo che questo funzioni nei più vecchi Ubuntus. Ho cercato di trovare qualcosa in /usr/python/site.py
, ma sembra fare la cosa giusta. L'aggiunta di -S
sembra impedire alla versione non locale di essere in cima. Ho visto questo su due computer, credo.Pip non può aggiornare un pacchetto integrato in Ubuntu 15.04
Alcuni esempi della necessità di questo: Aggiornamento per ottenere una funzione/correzione di errore richiesta (per PILLOW, nel mio caso) senza APT che disinstalla un gruppo di pacchetti che elencano quel pacchetto come requisito.
Modifica: Per chiarimenti, la domanda è: Voglio riordinare l'ordine di ricerca della directory per recuperare il comportamento di Ubuntu 14.10. Ci sono modi migliori per farlo su molti sistemi, ma voglio usare il pacchetto integrato di apt, solo con uno o due (potenziali) nuovi pacchetti, come IPython e simili, piuttosto che usare virtual-env e Anacoda (entrambi che uso su altri sistemi). Sembra che il mio comportamento desiderato sia il comportamento Debian documentato, quindi non sono sicuro del motivo per cui sta riordinando il percorso.
Ecco il percorso per dimostrare il problema, si noti la variabile PYTHONPATH
è nel mezzo, con due cartelle git:
>>> sys.path
['',
'/usr/lib/python2.7/dist-packages',
'/usr/local/lib/python2.7/dist-packages/requests-2.6.0-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/octave_kernel-0.10.0-py2.7.egg',
'/home/username/git/maya',
'/home/username/git/udaq/pyUDAQ',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']
Per avere un riferimento, ho un sistema di ricerca in esecuzione 14.04, ed ha esattamente l'atteso comportamento. I due PYTHONPATH
dirs vengono prima, poi poi in seguito locale dist-packages
sono al di sopra del costruito in.
Penso che lasciare che 'pip' e' apt' litighino sui pacchetti è una pessima idea. Un modo molto più pulito sarebbe invece passare a 'virtualenvs'. – cel
Voglio essere in grado di consegnare il mio computer a qualcuno che segue le indicazioni ma non ne sa molto. Dicendogli "ipython notebook" è più facile che dovergli dire di attivare prima un virtual env. Questa è generalmente una buona idea, però. –
In tal caso: passa a 'anaconda' e installa i pacchetti nell'ambiente di root.Quindi 'conda' e' pip' ora sono i gestori dei pacchetti e 'apt' non interferirà. – cel