2012-02-19 20 views
26

Ho easy_install e pip.Come installare virtualenv senza usare sudo?

Ho avuto molti errori sul mio Linux Mint , l'ho appena reinstallato e voglio installare di nuovo tutto da zero.

This è uno degli errori che ho avuto. Ho ricevuto una risposta interessante c'è:

Stop using su and sudo to run virtualenv.
You need to run virtualenv as your normal user.
You have created the virtualenv with sudo which is why you are getting these errors.

Così come installare virtualenv senza usare sudo? Posso usare pip o easy_install senza utilizzare sudo? oppure c'è un'altro modo?

+2

Si noti che quando si dice 'su' e' sudo', che cosa significa in realtà è 'come root'. Stai eseguendo 'virtualenv' come root e' virtualenv' non vuole essere eseguito come root. Elimina i privilegi e riprova. –

+0

C'è una grande differenza tra l'installazione di 'virtualenv' come root, i verses * in esecuzione * it come root. La citazione che hai inserito non sta parlando dell'installazione di 'virtualenv', ma usandola per impostare un ambiente virtuale per un progetto Python. – jpaugh

risposta

25

Questa soluzione è adatta nei casi in cui nessuno virtualenv è disponibile a livello di sistema e non è possibile diventare root per l'installazione virtualenv. Quando ho creato un debian per lo sviluppo o l'implementazione di Python, ho sempre apt-get install python-virtualenv. È più comodo averlo in giro piuttosto che fare il bootstrap indicato di seguito. Ma senza il root power potrebbe essere la strada da percorrere:

C'è un meccanismo di bootstrap che dovrebbe farti andare.

Leggi: http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python

In sostanza si dovrebbe fare questo nella vostra home directory in un ambiente UNIX:

Data la tua Python è la versione 2,6

 

    $ mkdir ~/bin 
    $ mkdir -p ~/lib/python2.6 
    $ mkdir -p ~/local/lib/python2.6/dist-packages 
    $ wget http://peak.telecommunity.com/dist/virtual-python.py 
    $ python virtual-python.py --no-site-packages 
    $ wget http://peak.telecommunity.com/dist/ez_setup.py 
    $ ~/bin/python ez_setup.py 
    $ ~/local/bin/easy_install virtualenv 
    $ ~/local/bin/virtualenv --no-site-packages thereyouare 

Ci può essere spazio per l'ottimizzazione. Non mi piace il percorso local. Solo bin e lib sarebbe bello. Ma fa il suo lavoro.

+0

Grazie mille per la soluzione! Usando 'python virtual-python.py --no-site-packages --prefix = \' pwd \ '', possiamo installare 'virtual-python' in una cartella diversa dalla cartella home, per prevenire l'inquinamento della directory. –

+2

con lo switch -p hai solo bisogno della terza linea ... la creazione di directory ricorsive avviene semplicemente. – RobotHumans

+14

Forse questo era valido per le versioni precedenti di virtualenv. Per ora, se si vuole eseguire virtualenv su una macchina non si è root: scaricare e decomprimere uno se questi: 'https: // github.com/pypa/virtualenv/releases', quindi eseguire semplicemente' python virtualenv.py/path/to/new/virtualenv/to/create' – Claude

14

L'idea generale è quella di installare virtualenv stessa globaly, cioè sudo easy_install virtualenv o sudo pip install virtualenv, ma poi creare l'ambiente virtuale reale ("run virtualenv") localmente.

+3

//, La domanda è, però, come. Molti dei pacchetti virtualenv, specialmente per CEntOS 6, finiscono per richiedere sudo una volta installato. –

8

http://opensourcehacker.com/2012/09/16/recommended-way-for-sudo-free-installation-of-python-software-with-virtualenv/ suggerisce quanto segue:

curl -L -o virtualenv.py https://raw.githubusercontent.com/pypa/virtualenv/master/virtualenv.py 
python virtualenv.py vvv-venv 
. vvv-venv/bin/activate 
pip install vvv 

Sembra funzionare bene. Mi consente di installare https://github.com/miohtama/vvv con pip.

Se riuscite:

Cannot find sdist setuptools-*.tar.gz 
Cannot find sdist pip-*.tar.gz 

Prova --extra-search-dir Dopo aver scaricato il tarball in https://github.com/pypa/virtualenv/tree/develop/virtualenv_support

2

Ho creato un "portatile" version of virtualenv.

wget https://bitbucket.org/techtonik/locally/raw/tip/06.get-virtualenv.py 
python 06.get-virtualenv.py 

Si scarica virtualenv.py script con dipendenze in .locally subdir e lo esegue da lì. Una volta fatto, lo script con .locally/subdir può essere copiato ovunque.

+0

Utilizzo della soluzione Ho questo errore: 'Controllo hash/size per /files/spegni/.locally/virtualenv.py Traceback (ultima chiamata ultima): File "06.get-virtualenv.py "la linea 163, in getsecure (bottino, filespec) File "06.get-virtualenv.py", la linea 132, in getsecure controllo (percorso file, la voce [ 'hashsize'], tranquillo) File" 06 .get-virtualenv.py ", riga 113, nel controllo % (percorso file, shize, hashsize (percorso file)) __main __. HashSizeCheckFailed: mismatch hash/dimensioni per /files/spegni/.locally/virtualenv.py exp: a506a836ef76301bc19e5a209984a4286529a79b 98.477 atto:.. d205cbd6783332a212c5ae92d73c77178c2d2f28 9' – FSp

+0

@FSp, squadra pypa ucciso il ramo per 1.11.x versione fissa Prova ora –

+1

aggiornato alla 12.0.7 virtualenv –

6

È inoltre possibile utilizzare il comando di seguito, ha funzionato per me senza l'accesso sudo. Potrebbe inoltre essere necessario modificare la variabile di ambiente PYTHONPATH utilizzando export, see this SO answer for more details.

pip install --user virtualenv

3

This ha lavorato per me:

pip install --target=$HOME/virtualenv/ virtualenv 
cd somewhere/ 
python $HOME/virtualenv/virtualenv.py env 
. env/bin/activate 

Ora posso pip install quello che voglio (tranne che per tutto ciò che ha bisogno di compilare roba con gcc e ha disperso le dipendenze come ad esempio le librerie di sviluppo di pitone e Python.h).

1

Si potrebbe prendere in considerazione l'utilizzo di Anaconda. È una distribuzione Python a tutti gli effetti, che vive in una cartella, ad es. la tua home directory No sudo è necessario in qualsiasi momento e si ottiene la maggior parte dei pacchetti popolari.

$ wget https://.../Anaconda2-2.5.0-Linux-x86_64.sh # check the website for the exact URL, it can change 
$ bash Anaconda2-2.5.0-Linux-x86_64.sh 
$ conda install virtualenv 
2

Fondamentalmente l'idea è di installare virtualenv (o qualsiasi altro pacchetto python) in ${HOME}/.local. Questa è la posizione più appropriata poiché è inclusa nel percorso Python per impostazione predefinita (e non solo per Python).

Che fai da pip3 install virtualenv --prefix=${HOME}/.local (potrebbe essere necessario espandere ${HOME}). Assicurarsi di avere export PATH=${HOME}/.local/bin:${PATH} nel vostro ~/.profile (potrebbe essere necessario source ~/.profile se appena aggiunto)

0

Il modo più semplice che ho visto finora è quello di installare Anaconda. Potrebbe essere eccessivo per te. Per me il centOS in esecuzione sul server remoto aveva solo python2.6 installato. Anaconda installa di default tutto localmente + è python2.7

curl -O https://repo.continuum.io/archive/Anaconda2-4.2.0-Linux-x86_64.sh 

Poi

bash Anaconda2-4.2.0-Linux-x86_64.sh 

Boom. Hai tutti i pacchetti come numpy e pip installati. Poi, se si vuole virtualenv, basta digitare

pip install virtualenv 
+0

Questo non risponde alla domanda di OP ha già pip e vuole.. per installare virtualenv senza fare sud o. – MYGz

+0

@Ghazi La domanda dice: "Voglio installare di nuovo tutto da zero". Anche in questo caso, anche se non risponde precisamente alla domanda dell'OP, qualcun altro lo troverà utile come I. –

+0

E come viene definito "tutto"? Anaconda è tutto secondo te? – MYGz

Problemi correlati