Comando Virtualenv non trovato


208

Non sono riuscito virtualenva lavorare nonostante vari tentativi. Ho installato virtualenvsu MAC OS X usando:

pip install virtualenv

e ho anche aggiunto il PATHnel mio .bash_profile. Ogni volta che provo ad eseguire il virtualenvcomando, restituisce:

-bash: virtualenv: command not found

Ogni volta che corro pip install virtualenv, ritorna:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Capisco che in Mac, virtualenvdovrebbe essere installato correttamente in

/usr/local/bin

Il virtualenvè infatti installato in /usr/local/bin, ma ogni volta che tenta di eseguire il virtualenvcomando, il comando non viene trovato. Ho anche provato a eseguire il virtualenvcomando nella directory /usr/local/bine mi dà lo stesso risultato:

-bash: virtualenv: command not found

Questi sono i PERCORSI che ho aggiunto al mio .bash_profile

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

Qualche soluzione alternativa per questo? Perché è così?


1
Prova ad aggiungere un link simbolico all'eseguibile virtualenv in / usr / local / bin
Justin Fay,

Dove devo creare il collegamento simbolico? Non funziona ancora nonostante abbia provato ad aggiungere un link simbolico nella directory in cui voglio usare virtualenv @justinfay
Arial

2
dall'esaminare i percorsi sopra potrebbe essere qualcosa di simile, sostituire l'ultimo percorso nel comando con il percorso all'eseguibile virtualenv effettivo:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay

2
ciò che ha funzionato per me è stato aggiungere un link simbolicoln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza,

Non funziona in un lubuntu
c24b,

Risposte:


337

Se lo hai installato con

pip install virtualenv

Devi correre

sudo /usr/bin/easy_install virtualenv

che lo mette dentro /usr/local/bin/ .

La directory sopra per impostazione predefinita dovrebbe essere nella tua PATH; altrimenti, modifica il tuo .zshrc(o. bashrc) di conseguenza.


1
sempre felice di aiutare @nguns
Tal Avissar il

sull'istanza di AWS EC2 con Amazon Linux, se stai provando Let's Encrypt certbot, prova questa soluzione. Questo è stato l'unico suggerimento che ha risolto il mio problema con virtualenv.
emrahgunduz,

2
Sei il migliore!
leon wu

6
l'uscita èsudo: /usr/bin/easy_install: command not found
Ced

3
Grazie per questo - ma vorrei sapere cosa stia lavorando qui - cosa fa "easy_install" che il normale pip non fa? cioè perché questo funziona?
Thomas Kimber,

153

Ho affrontato lo stesso problema ed è così che l'ho risolto:

  1. Il problema si è verificato perché ho installato virtualenv tramite pip come utente normale (non root). pip ha installato i pacchetti nella directory~/.local/lib/pythonX.X/site-packages
  2. Quando ho eseguito pip come root o con privilegi di amministratore (sudo), ha installato i pacchetti /usr/lib/pythonX.X/dist-packages. Questo percorso potrebbe essere diverso per te.
  3. Il comando virtualenv viene riconosciuto solo nel secondo scenario
  4. Quindi, per risolvere il problema, esegui pip uninstall virtualenve quindi reinstallalo con sudo pip install virtualenv(o installa come root)

8
Ho seguito la tua soluzione e ho ricevuto il messaggio "... Se esegui pip con sudo, potresti volere il flag -H di sudo". Finalmente sudo -H pip install virtualenv ha fatto il lavoro per me (su OS X), grazie
smudo78,

1
cosa succede se root non è disponibile sul tuo computer?
user5359531

Problema risolto. Immagino che questo possa andare nella directory globale anziché --user.

Questo problema si verifica anche quando pip stesso è installato in ~ / .local / SOME_PATH. Ho cpED tutto in site-packagesdir in /usr/lib/pythonx.x/site-packages, e rm -rfEd directory originale.
Yoon

47

La risposta più semplice Appena:

pip uninstall virtualenv

e poi:

pip install virtualenv

O forse hai installato virtualenv con sudo, in quel caso:

pip install --user virtualenv

Wow! Questo è ciò che ha fatto il trucco per me. Sto usando pyenva proposito
race_carr

Questa è la strada da percorrere per Mac OS X usando brew.
TCSGrad,

Ho combattuto per settimane e mi ha impedito il tempo limitato per lavorare su un progetto Python e questa è stata l'unica soluzione per lavorare su Mac. Grazie!
HellaDev,

37

Su Ubuntu 18.04 LTS ho riscontrato anche lo stesso errore. Il seguente comando ha funzionato:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvnon esiste
Leonard,

Ha funzionato come un incantesimo sul mio 18.04, grazie
Nischaya Sharma il

Votato per promuovere aptcome successore di apt-get.
greybeard

24

Ho avuto lo stesso problema su Mac OS X El Capitan .

Quando ho installato in virtualenvquel modo sudo pip3 install virtualenvnon avevo virtualenvsotto la mia riga di comando.

Ho risolto questo problema seguendo questi passaggi:

  1. Disinstallare le installazioni precedenti.
  2. Passa all'account superutente prima virtualenvdell'installazione chiamandosudo su
  3. Installa virtualenvchiamandopip3 install virtualenv
  4. Finalmente dovresti essere in grado di accedere virtualenvsia da un account userche da un super useraccount.

15

Capire il problema

Prova a installare con il --verboseflag

pip install virtualenv --verbose

L'output sarà simile a questo

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

Dall'output possiamo vedere che è installato in /home/manos/.local/bin/virtualenvquindi assicuriamoci che PATH lo includa.

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Nel mio caso possiamo vedere chiaramente che /home/manos/.local/binmanca del tutto ed è per questo che la shell non riesce a trovare il programma.

soluzioni

Possiamo risolverlo in molti modi:

  1. Possiamo installarlo direttamente in una directory specifica armeggiando con le opzioni pip (non consigliato).
  2. Crea collegamenti simbolici appropriati su /usr/local/bin o simili.
  3. Aggiungere /home/manos/.local/bin al PERCORSO.
  4. Installa come sudo per l'installazione diretta /usr/local/bin

Le ultime due opzioni sono probabilmente le più sensate. L'ultima soluzione è la più semplice, quindi mostrerò solo la soluzione 3.

Aggiungi questo a ~ / .profile:

PATH="$PATH:$HOME/.local/bin"

Disconnettersi e riconnettersi e dovrebbe funzionare.


1
Questo ha funzionato perfettamente. Dovrebbe essere la risposta accettata e +1 per la spiegazione dettagliata
David The Programmer

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


ha funzionato per me senza 3. python -m virtualenv <nome>
ofer.sheffer il

11

Nel mio caso, ho corso pip show virtualenvper ottenere le informazioni sul pacchetto virtualenv. Sarò simile a questo e mostrerò anche la posizione del pacchetto:

user@machine:~$ pip show virtualenv
Name: virtualenv
Version: 16.2.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: ianb@colorstudy.com
License: MIT
Location: /home/user/.local/lib/python3.6/site-packages
Requires: setuptools

Da quello prendi la parte della posizione fino alla .localparte, che in questo caso è /home/user/.local/. Puoi trovare il comando virtualenv sotto /home/user/.local/bin/virtualenv.

È quindi possibile eseguire comandi come /home/user/.local/bin/virtualenv newvirtualenv.


10

Ho avuto lo stesso problema. Ho usato i seguenti passaggi per farlo funzionare

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

Questo è tutto. Ha iniziato a funzionare.

Utilizzo di sudo -H----> sudo -H: imposta la HOMEvariabile come destinazione home dell'utente di destinazione.


1
Risolve per me esattamente lo stesso problema ... perché non viene verificato come soluzione?
Manuele,

9

L'hai detto ogni volta che corri pip install, ottieni Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Quello che devi fare è il seguente:

  1. Cambia directory (vai a quello in cui virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Se lo fai lsvedrai che lo script è lìvirtualenv.py
  3. Esegui lo script in questo modo: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Spero che questo ti aiuti. Il mio consiglio sarebbe di ricercare di più sui venv. Ecco una buona risorsa: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

Ho avuto problemi perché ho usato apt per installare il pacchetto python-virtualenv. Per farlo funzionare ho dovuto rimuovere questo pacchetto con apt-get remove python-virtualenve installarlo con pip install virtualenv.


1
Ciò lascia la domanda: perché il diavolo è il mio pacchetto python3-virtualenv rotto?
Dmitri DB

6

Assicurarsi che virtualenvsia eseguibile.

Se virtualenvnon viene trovato, l'esecuzione del percorso completo ( /usr/local/bin/virtualenv) dovrebbe funzionare.


5

Penso che il tuo problema possa essere risolto usando un semplice link simbolico , ma stai creando il link simbolico al file sbagliato . Per quanto ne so virtualenv è installato /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv, (puoi cambiare i numeri per la tua versione di Python) quindi il comando per creare il link simbolico dovrebbe essere:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv

impostare il collegamento sym era tutto ciò che dovevo fare. grazie.
Kirby,

5

Su Ubuntu 18.4 sull'installazione di AWS con pip non funziona correttamente. Usando apt-get install il problema è stato risolto per me.

sudo apt-get install python-virtualenv

e controllare

virtualenv --version

4

Stesso problema: Così ho appena fatto pip uninstall virtualenv Poi pip install virtualenv

pip install virtualenv --user

Raccolta di virtualenv utilizzando la cache https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-pany :

Quindi ho ottenuto questo:

Lo script virtualenv è installato in '/Users/brahim/Library/Python/2.7/bin' che non si trova su PATH. Valuta di aggiungere questa directory a PATH o, se preferisci sopprimere questo avviso, usa --no-warn-script-location.

che dice chiaramente dove è installato e cosa fare per ottenerlo


2

Se stai usando Linux, apri il tuo terminale e digita virtualenv a metà strada e il completamento automatico con il tasto tab. Se non è presente il completamento automatico, installa virtualenv sul tuo sistema eseguendo:

mycomp$sudo apt-get install virtualenv
//if you're already super user.
mycomp#apt-get install virtualenv

Ora puoi navigare dove vuoi creare il tuo progetto ed eseguire:

myprj$pip3 install virtualenv    
//to install python 3.5 and above  
myprj$virtualenv venv --python=python3.5  
//to activate virtualenv  
(venv)myprj$source venv/bin/activate  
(venv)myprj$deactivate

Ho aggiornato a Python 3.7. Ho continuato a provare a installare virtualenv, restituirà sempre "Errore: Impossibile trovare una versione che soddisfi il requisito virtualenv (dalle versioni: nessuna)". Ho letto da qualche parte che da una certa versione di Python 3.x viene fornito con virtualenv installato, ma cercando di creare un ambiente virtuale semplice, non ha funzionato, restituirebbe un errore che non conosce il comando virtualenv. Ma ha funzionato con il seguente comando dalla tua risposta, "virtualenv venv --python = python3.7". Nient'altro fatto prima. Nel caso in cui aiuti qualcun altro. Ambiente MacOS.
Carmen,

1

funziona in Ubuntu 18 e versioni successive (non testato nelle versioni precedenti):

sudo apt install python3-virtualenv

1

Ho avuto lo stesso problema per molto tempo. Ho risolto eseguendo questi due comandi, il primo è quello di installare il secondo è di attivare l'ENV:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Nota che sto usando python3, puoi cambiarlo solo pythonse python3fallisce. Grazie.


0

Seguire questi passaggi di base per configurare l'ambiente virtuale

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

dobbiamo aggiornare il nostro ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Il ~/.bashrcfile è semplicemente uno script di shell che Bash esegue ogni volta che avvii un nuovo terminale. Normalmente si utilizza questo file per impostare varie configurazioni. In questo caso, stiamo impostando una variabile di ambiente chiamata WORKON_HOME per puntare alla directory in cui vivono i nostri ambienti virtuali Python. Carichiamo quindi tutte le configurazioni necessarie da virtualenvwrapper.

Per aggiornare il tuo ~/.bashrcfile è sufficiente utilizzare un editor di testo standard, nano è probabilmente il più semplice da utilizzare. Una soluzione più semplice è utilizzare il comando cat ed evitare del tutto gli editor:

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Dopo aver modificato il nostro file ~ / .bashrc, dobbiamo ricaricare le modifiche:

source ~/.bashrc

Ora che abbiamo installato virtualenv e virtualenvwrapper, il passo successivo è effettivamente creare l'ambiente virtuale Python - lo facciamo usando il comando mkvirtualenv.

mkvirtualenv YOURENV

0

Per me è stato installato in questo percorso (python 2.7 su MacOS): $ HOME / Libreria / Python / 2.7 / bin


0

Sto facendo il corso iOS online di Angela Yu e stavo ricevendo lo stesso problema, inoltre stavo ricevendo il permesso negato errore 13 quando stavo cercando di eseguire virtualenv --python=/{myPath} {newVirtualEnvName}

L'ho risolto con:

  1. passare all'utente sudo sudo su
  2. navigare nella mia cartella di destinazione (dove voglio che il mio nuovo ambiente virtuale viva) cioè. / Users / muUserName / Ambienti /
  3. Esegui comando python -m virtualenv python27dove python27 è un nome del mio nuovo ambiente virtuale
  4. sopra creato pathon27 cartella nella mia cartella Environments , e quindi sono stato in grado di eseguire source python27/bin/activateper avviare il mio virtualenv

0

La risposta semplice è che se non sei un utente sudo come non lo ero io. Devi aggiungere il percorso della tua cartella bin ( /home/myusername/.local/bin). Quindi, in sostanza, la riga di comando cerca in quale di questi percorsi è il comando che hai digitato.

export PATH=/home/b18150/.local/bin:/usr/bin:/bin

qui cercherà local/binprima prima /usr/bine poi /bin.


-3
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3 comandi e tutto funziona!


La domanda è per mac OS, non c'èapt
Matteo

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.