2016-03-03 25 views
6

Attualmente sto usando un pacchetto python che dipende dalle richieste 2.7.0 o successive, ma le richieste nel mio sistema, Ubuntu 14.04, sono la versione 2.2.1. Ho provato ad aggiornare via pip:Come aggiornare correttamente le richieste in Ubuntu 14.04

pip install requests==2.7.0 

ma mi dà un errore, dicendo:

Not uninstalling requests at /usr/lib/python2.7/dist-packages, owned by OS 

ho cercato di aggiornarlo utilizzando apt-get install --only-upgrade python-requests, ma si dice che è già sull'ultima versione (e non è).

Quindi ho provato a installare in un virtualenv, ma dà lo stesso messaggio del messaggio pip sopra.

Infine, ho pensato a due opzioni:

1-) Unninstalling tramite apt-get e poi l'installazione via pip - Penso che sia troppo rischioso, dal momento che disinstallare un sacco di altri pacchetti.

2-) Clonazione da github e installando manualmente tramite setup.py, ma ho anche paura che possa confusione con altri pacchetti a seconda che

Qual è il modo migliore per farlo? C'è qualcosa di semplice che mi manca?

+0

potrebbe darci il vostro comando pip perché posso fare un pippo mkvirtualenv poi pip installare richieste witout qualsiasi problema e installa le richieste-2.9.1-py2.py3-nessuno-any.whl. Forse puoi disinstallare il pacchetto debian prima di pip – Benjamin

+0

Hai installato le richieste con 'sudo' inizialmente? Ho scoperto che un sacco di errori 'pip' sono causati dall'installazione di qualcosa che' sudo' può accedervi, ma che un utente normale non può. – wpercy

+0

Modificato con il comando pip. Qual è la differenza tra virtualenv foo e mkvirtualenv foo? –

risposta

4

questo funziona per me su Ubuntu 14.04:

~ › sudo apt-get install -u python-requests 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
python-requests is already the newest version. 
python-requests set to manually installed. 
0 to upgrade, 0 to newly install, 0 to remove and 15 not to upgrade. 

~ › python 
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import requests 
>>> requests.__version__ 
'2.0.1' 
>>> 

~ › mkvirtualenv test 
New python executable in test/bin/python 
Installing setuptools, pip, wheel...done. 

~ (test) › pip install requests 
Collecting requests 
    Using cached requests-2.9.1-py2.py3-none-any.whl 
Installing collected packages: requests 
Successfully installed requests-2.9.1 

~ (test) › python 
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import requests 
>>> requests.__version__ 
'2.9.1' 
>>> 

mi chiedo il motivo per cui il sistema operativo/versione di Ubuntu di richieste è 2.2.1, mentre il mio è 2.0.1. Avete installato una versione più recente delle richieste manualmente, tramite qualche altro meccanismo rispetto al pacchetto .deb delle richieste python ufficiali? Come suggerito da @wilbur nei commenti sopra, è possibile che tu abbia eseguito sudo pip install requests ad un certo punto nel passato? Se è così, potrebbe valere la pena di correre sudo pip uninstall requests per vedere se è possibile sbarazzarsi di esso ...

+1

Ha funzionato in virtualenv. Stavo usando pip con sudo all'interno di virtualenv, e quindi utilizzava pip di sistema, non virtualenv. Grazie compagno. –

3

Ho bisogno di richieste> 2.10.0 per il supporto integrato di socks proxy. Forza disinstallazione dpkg --remove --force-depends python-requests interruzioni apt (anche se le richieste sono pip installate).

apt-get install python-requests ripristina il 2.2.1, la versione massima nel repository fidato fidato. Tuttavia, yakkety ubuntu repo contiene 2.10.0 python-richieste, se necessario, così ho fatto la seguente:

apt-add-repository "deb http://us.archive.ubuntu.com/ubuntu/ yakkety main" 
apt-get update 
apt-get install python-requests # it installs 2.10.0 
apt-add-repository -r "deb http://us.archive.ubuntu.com/ubuntu/ yakkety main" 
apt-get update 

Nota! È essenziale eseguire il secondo valore apt-get update per rimuovere l'indice yakkety e non eseguire occasionalmente lo apt-get upgrade e interrompere il sistema.

Quindi ora ho la versione richiesta.

$ sudo pip2 show requests 
    --- 
    Name: requests 
    Version: 2.10.0 
    Location: /usr/lib/python2.7/dist-packages 
    Requires: 
+0

Questa è una soluzione a livello di sistema. Se è necessario virtualenv, vedere le risposte precedenti – voldemarich

Problemi correlati