2011-09-19 5 views
162

Sto frequentando alcuni corsi universitari e mi è stato dato un "account didattico", che è un account scolastico che posso partecipare al lavoro. Voglio eseguire il mio codice Numpy, Matplotlib, Scipy computazionalmente intensivo su quella macchina, ma non posso installare questi moduli perché non sono un amministratore di sistema.Come installare i moduli python senza accesso root?

Come posso eseguire l'installazione?

+12

È possibile passare --user o --prefix per setup.py per il pacchetto che stai installando per installarlo localmente.Vedi [installazione alertnative per i moduli Python] (http://docs.python.org/install/index.html#alternate-installation) – arunkumar

risposta

225

Nella maggior parte delle situazioni la soluzione migliore è quella di affidarsi alla cosiddetta posizione "utente del sito" (vedi la PEP per i dettagli) eseguendo:

pip install --user package_name 

Qui di seguito è un modo più "manuale" dal mio risposta originale, non è necessario leggerlo se la soluzione di cui sopra funziona per te.


Con easy_install si può fare:

easy_install --prefix=$HOME/local package_name 

che installerà nella

(cartella
$HOME/local/lib/pythonX.Y/site-packages 

'locale' è un nome tipico molte persone usano, ma naturalmente si può specificare qualsiasi cartella in cui si ha il permesso di scrivere in).

Sarà necessario creare manualmente

$HOME/local/lib/pythonX.Y/site-packages 

e aggiungerlo alla variabile d'ambiente PYTHONPATH (altrimenti easy_install si lamenterà - btw eseguire il comando sopra una volta per trovare il valore corretto per X.Y).

Se non si utilizza easy_install, cercare un'opzione di prefisso, la maggior parte degli script di installazione consente di specificarne uno.

Con pip è possibile utilizzare:

pip install --install-option="--prefix=$HOME/local" package_name 
+0

e se Python non ha 'pip' e' easy_install' disponibili? – Girardi

+1

@Girardi: quindi [installa 'pip'] (http://stackoverflow.com/a/13958308/4279) – jfs

+0

sì, questo è quello che ho richiesto all'amministratore =) – Girardi

8

Se si deve usare un Distutils setup.py sceneggiatura, ci sono alcune opzioni da riga di comando per forzare una destinazione di installazione. Vedi http://docs.python.org/install/index.html#alternate-installation. Se questo problema si ripete, è possibile impostare un file di configurazione di distutils, vedere http://docs.python.org/install/index.html#inst-config-files.

L'impostazione della variabile PYTHONPATH è descritta nel post di tihos.

+1

Grazie mille. Ho installato con successo la libreria 'lxml' usando' python /setup.py install --home =

' –

36

È inoltre possibile creare un python virtualenv (https://pypi.python.org/pypi/virtualenv), specialmente quando non si dispone delle autorizzazioni per accedere o installare il comando easy_install.

Esecuzione 3 comandi nella shell sarà sufficiente:

$ curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py 
$ python virtualenv.py my_new_env 
$ . my_new_env/bin/activate 
(my_new_env)$ pip install package_name 

fonte e ulteriori informazioni: https://virtualenv.pypa.io/en/latest/installation/

+0

Questa risposta mi è stata utile su un sistema senza' pip' installato. –

+0

Ho provato una variante per la mia installazione python locale. curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | ~/Python-2.7.8/python – Neerav

+2

La sorgente sembra essersi spostata e quanto sopra non funziona immediatamente. Le istruzioni simili a 'https: // virtualenv.pypa.io/it/latest/installation /' funzionano bene però :) –

5

domanda importante. Il server che utilizzo (Ubuntu 12.04) aveva easy_install3 ma non pip3.Questo è il modo che ho installato Pip e poi altri pacchetti alla mia cartella home

  1. amministratore Alla richiesta di installare il pacchetto Ubuntu python3-setuptools

  2. pip installata

Ti piace questa:

easy_install3 --prefix=$HOME/.local pip 
mkdir -p $HOME/.local/lib/python3.2/site-packages 
easy_install3 --prefix=$HOME/.local pip 
  1. Aggiungere Pip (e altre applicazioni Python al percorso)

Ti piace questa:

PATH="$HOME/.local/bin:$PATH" 
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile 
  1. Installare il pacchetto Python

come questo

pip3 install --user httpie 

# test httpie package 
http httpbin.org 
2

Io uso JuJu che fondamentalmente permette di avere davvero t distribuzione linux di Linux (contenente solo il gestore di pacchetti) nella directory $ HOME/.juju.

Consente di avere il proprio sistema personalizzato all'interno della directory home accessibile tramite proot e, pertanto, è possibile installare qualsiasi pacchetto senza privilegi di root. Funzionerà correttamente con tutte le principali distribuzioni Linux, l'unica limitazione è che JuJu può essere eseguito su kernel linux con la versione minima consigliata 2.6.32.

Per esempio, dopo aver installato JuJu installare pip basta digitare il seguente:

$>juju -f 
(juju)$> pacman -S python-pip 
(juju)> pip 
9

È possibile eseguire easy_install per installare i pacchetti python nella vostra home directory anche senza accesso root. C'è un modo standard per farlo usando site.USER_BASE che ha come valore $ HOME/.local o $ HOME/Library/Python/2.7/bin ed è incluso per impostazione predefinita su PYTHONPATH

Per fare ciò, creare un .pydistutils.cfg nella vostra directory home:

cat > $HOME/.pydistutils.cfg <<EOF 
[install] 
user=1 
EOF 

Ora è possibile eseguire easy_install senza privilegi di root:

easy_install boto 

in alternativa, questo permette anche di eseguire pip senza accesso root:

pip install boto 

Questo funziona per me.

Fonte dal blog di Wesley Tanaka: http://wtanaka.com/node/8095

+1

Questo ha funzionato per me per l'installazione senza l'accesso root sul server linux. Grazie Ma non ho idea del perché abbia funzionato. Qualcuno può dare un suggerimento? – ChathuraG