Qual è il modo più semplice per eseguire un'installazione locale di un pacchetto Python?


32

Non voglio avere a che fare con virtualenv per un'installazione Python locale, voglio solo installare alcuni pacchetti localmente senza occuparmi della PYTHONPATHvariabile d'ambiente, come posso farlo?


Dici "gestisci" come se virtualenv fosse una seccatura. Ho trovato l'esatto contrario per essere vero. (Forse vuoi --system-site-packages?)
Andreas Klöckner,

è stato ipoticamente proposto :) virtualenv è fantastico ma non si adatta a tutti i casi d'uso.
Aron Ahmadia,

Risposte:


48

Python (a partire da 2.6 e 3.0 ) ora cerca nella directory ~ / .local le installazioni locali, che non richiedono i privilegi di amministratore per l'installazione, quindi devi solo puntare il tuo installatore a quella directory.

Se hai già scaricato il pacchetto fooe desideri installarlo manualmente, digita:

cd path/to/foo
python setup.py install --user

Se stai usando easy_install e desideri che il pacchetto sia scaricato e installato:

easy_install --prefix=$HOME/.local/ foo

Aggiornamento di RafiK

pip install --user foo

La seguente risposta viene fornita per scopi storici: è un po 'più di lavoro se si utilizza pip per scaricare e installare:

pip install --install-option="--prefix=$HOME/.local" foo

3
aggiornamento: pip ora supporta un flag --user: pip install --user SomePackage (collegamento al manuale) Usando questo, tutto dovrebbe funzionare
immediatamente

5

Anche se mi piace Python come lingua, distribuire i pacchetti Python è un casino. Trovo sempre persone che non hanno familiarità con Python che lottano con esso.

Accanto all'installazione locale dell'utente come indicato da Aron (utilizzando --user o --prefix), un'altra opzione è EasyBuild ( http://hpcugent.github.com/easybuild/ ). Non solo per i pacchetti Python, ma per qualsiasi pacchetto software (scientifico). Una volta che EasyBuild ne ha il supporto, la creazione e l'installazione di un pacchetto software è fondamentalmente un singolo comando.

Per un elenco dei pacchetti software attualmente supportati, consultare https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Disclaimer: sono uno sviluppatore di EasyBuild.


2

@Aron: assicurarsi di aggiungere il percorso dei pacchetti di siti locali alla variabile di ambiente $ PYTHONPATH


Viene automaticamente incluso nel percorso del sito a partire da Python 2.6 e Python 3.0 :)
Aron Ahmadia

@AronAhmadia no se si utilizza l' --prefixopzione.
Jens Timmerman,

@JensTimmerman - il percorso del sito è dove Python guarda quando inizia l'importazione dei moduli, ogni volta che esegui Python. L'opzione prefisso specifica dove installare un determinato pacchetto quando si installa un pacchetto Python. Due nozioni completamente separate.
Aron Ahmadia,

@AronAhmadia sì, il mio punto è che quando usi easy_install --prefix = / tmp devi aggiungere "/tmp/lib/pythonx.x/site-packages" alla tua variabile PYTHONPATH o non verrà raccolto da Python.
Jens Timmerman,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.