2013-03-14 22 views
12

Sto provando a installare i pacchetti localmente con pip. Funzionava con --user ma ora quando lo provo, trova la versione del pacchetto in /usr/local/lib/ e quindi non lo installa localmente. Normalmente installerebbe le cose in ~/.local ma ora controlla solo la directory di sistema per il pacchetto e se è lì, non lo installa (che non è quello che voglio) e se non è lì, prova ad installarlo in /usr/local/lib che non ho i permessi di scrittura a. Ad esempio:pip non installa pacchetti Python localmente con --user

$ pip install --user rpy2 
Requirement already satisfied (use --upgrade to upgrade): rpy2 in /usr/local/lib/python2.7/dist-packages/ 

Come posso fare pip install --user andare sempre a ~/.local e non una directory di sistema?

+0

bene dice che il "Requisito" è soddisfatto e ti dice di usare l'opzione --upgrade, hai provato ad usarlo? – PurityLake

+0

@PurityLake: sì, questo non cambia nulla – user248237dfsf

+2

"gli strumenti software comunemente utilizzati dai programmatori", come 'pip', sono in argomento. Votato per riaprire. –

risposta

2

Secondo la documentazione del pip, quella sintassi è corretta, ma richiede Python 2.6.

utente installa

Con Python 2.6 è arrivata la “schema utente” per l'installazione, il che significa che tutte le distribuzioni Python supportano un'alternativa percorso di installazione che è specifico per un utente. La posizione predefinita per ciascun sistema operativo è spiegata nella documentazione python per la variabile site.USER_BASE. Questa modalità di installazione può essere attivata specificando l'opzione -user per l'installazione di pip.

Inoltre, lo "schema utente" può essere personalizzato impostando la variabile di ambiente PYTHONUSERBASE, che aggiorna il valore di site.USER_BASE.

Per installare “SomePackage” in un ambiente con site.USER_BASE personalizzato per '/ myappenv', effettuare le seguenti operazioni:

export PYTHONUSERBASE=/myappenv 
pip install --user SomePackage 



Così la seguente voce dovrebbe funzionare per voi:

export PYTHONUSERBASE=~/.local 
pip install --user rpy2 
+0

La documentazione del pip si trova in: [pip cookbook] (http://www.pip-installer.org/en/latest/cookbook.html) – JamCon

+1

MagicalPony: non lo sapevo, grazie. Ma l'impostazione di PYTHONUSERBASE non funziona - sta ancora cercando in/usr/local/lib/' – user248237dfsf

+0

' installazione di pipe --user --force-reinstall --upgrade jinja2' può installare nella directory '~/.local /'. – RNA

12

Citing Marcus Smith (manutentore di pip):

01.235.

Se si pensa che il sito globale non è aggiornato, e desidera che l'ultima di l'utente del sito, quindi utilizzare:
pip install --upgrade --user SomePackage

Se il sito globale è fino ad oggi, e si vuole veramente solo la stessa cosa duplicato in --user, quindi utilizzare:
pip install --ignore-installed --user SomePackage (che funziona correttamente ora, dopo la fusione di # 1352, che è quello di essere rilasciato in v1.5)

Come posso rendere pip install --user sempre su ~/.local e non su una directory di sistema?

Utilizzare entrambi gli argomenti --upgrade e --ignore-installed.

+0

Grazie per aver menzionato i bug dei pip. L'unica cosa che mi manca è combinare --prefix con --user, vedi http://stackoverflow.com/questions/24420125/python-change-user-site-directory-or-install-setup-py-prefix -con-utente – rudimeier

Problemi correlati