Comando Virtualenv não encontrado


207

Não consegui virtualenvtrabalhar apesar de várias tentativas. Eu instalei virtualenvno MAC OS X usando:

pip install virtualenv

e também adicionei o PATHno meu .bash_profile. Toda vez que tento executar o virtualenvcomando, ele retorna:

-bash: virtualenv: command not found

Toda vez que corro pip install virtualenv, ele retorna:

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

Eu entendo que no mac, o virtualenvdeve ser instalado corretamente no

/usr/local/bin

O de virtualenvfato está instalado /usr/local/bin, mas sempre que tento executar o virtualenvcomando, o comando não é encontrado. Eu também tentei executar o virtualenvcomando no diretório /usr/local/bin, e ele me deu o mesmo resultado:

-bash: virtualenv: command not found

Estes são os PATHs que adicionei ao meu .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

Alguma solução alternativa para isso? Por que esse é o caso?


1
Tente adicionar um link simbólico para o virtualenv executável em / usr / local / bin
Justin Fay

Onde devo criar o link simbólico? Ele ainda não está funcionando, apesar de eu tentei adicionar um link simbólico para o diretório onde eu quero usar @justinfay virtualenv
Arial

2
de olhar para os caminhos acima poderia ser algo como, substitua o último caminho no comando com o caminho para o executável virtualenv real:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay

2
o que funcionou para mim foi adicionar um link simbólicoln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza

Não funciona em um lubuntu
c24b 15/02/16

Respostas:


337

Se você o instalou com

pip install virtualenv

Você precisa correr

sudo /usr/bin/easy_install virtualenv

o que o coloca /usr/local/bin/.

O diretório acima, por padrão, deve estar no seu PATH; caso contrário, edite seu .zshrc(ou. bashrc) de acordo.


1
sempre feliz em ajudar @nguns
Tal Avissar

na instância do AWS EC2 com Amazon Linux, se você estiver tentando o Let's Encrypt's certbot, experimente esta solução. Essa foi a única sugestão que resolveu meu problema de virtualenv.
emrahgunduz

2
Você é o melhor!
Leon wu

6
a saída ésudo: /usr/bin/easy_install: command not found
Ced

3
Obrigado por isso - mas eu gostaria de saber o que a bruxaria está trabalhando aqui - o que o "easy_install" faz com que o pip regular não faça? Por que isso funciona?
Thomas Kimber

153

Eu enfrentei o mesmo problema e foi assim que resolvi:

  1. O problema ocorreu porque eu instalei o virtualenv via pip como um usuário comum (não root). O pip instalou os pacotes no diretório~/.local/lib/pythonX.X/site-packages
  2. Quando executei o pip como root ou com privilégios de administrador (sudo), ele instalou pacotes no /usr/lib/pythonX.X/dist-packages . Esse caminho pode ser diferente para você.
  3. O comando virtualenv é reconhecido apenas no segundo cenário
  4. Portanto, para resolver o problema, faça pip uninstall virtualenve reinstale-o com sudo pip install virtualenv(ou instale como root)

8
Eu segui sua solução e recebi a mensagem "... Se estiver executando o pip com o sudo, você pode querer o sinalizador -H do sudo". Finalmente sudo -H pip instalar virtualenv fez o trabalho para mim (no OS X), obrigado
smudo78

1
e se o root não estiver disponível na sua máquina?
user5359531

Resolveu o problema. Eu acho que este pode ir para o diretório global em vez de --user.

Esse problema também ocorre quando o próprio pip é instalado em ~ / .local / SOME_PATH. I cped tudo na site-packagesdir em /usr/lib/pythonx.x/site-packages, e rm -rfed o diretório original.
yoon 01/06

47

A resposta mais simples. Somente:

pip uninstall virtualenv

e depois:

pip install virtualenv

Ou talvez você tenha instalado o virtualenv com sudo, nesse caso:

pip install --user virtualenv

Uau! Foi isso que fez o truque para mim. Estou usando pyenva propósito
race_carr 18/04/19

Este é o caminho a seguir para o Mac OS X usando o brew.
TCSGrad

Estou lutando contra isso há semanas e isso tem dificultado meu tempo limitado para trabalhar em um projeto python, e essa foi a única solução para trabalhar para mim no mac. Obrigado!
HellaDev 18/04/19

37

No Ubuntu 18.04 LTS eu também enfrentei o mesmo erro. O seguinte comando funcionou:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvnão existe
Leonard

Funcionou como um encanto no meu 18.04, Obrigado
Nischaya Sharma 02/02

Votado para promover aptcomo sucessor de apt-get.
greybeard 28/04

24

Eu tive o mesmo problema no Mac OS X El Capitan .

Quando eu instalei virtualenvassim sudo pip3 install virtualenv, não tinha virtualenvsob minha linha de comando.

Resolvi esse problema seguindo estas etapas:

  1. Desinstale as instalações anteriores.
  2. Alterne para a conta de superusuário antes da virtualenvinstalação chamandosudo su
  3. Instale virtualenvchamandopip3 install virtualenv
  4. Finalmente, você deve conseguir acessar os virtualenvdois usere a super userconta.

15

Descobrir o problema

Tente instalar com a --verbosebandeira

pip install virtualenv --verbose

Saída será algo como isto

  ..
  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...

A partir da saída, podemos ver que ele está instalado, /home/manos/.local/bin/virtualenventão vamos garantir que PATH inclua isso.

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

No meu caso, podemos ver claramente que isso /home/manos/.local/binestá totalmente ausente e é por isso que o shell não consegue encontrar o programa.

Soluções

Podemos resolver isso de várias maneiras:

  1. Podemos instalar diretamente em um diretório específico, mexendo nas opções de pip (não recomendado).
  2. Crie links simbólicos apropriados em /usr/local/bin ou similar.
  3. Acrescentar /home/manos/.local/bin ao PATH.
  4. Instale como sudo para instalar diretamente no /usr/local/bin

As duas últimas opções são provavelmente as mais sensatas. A última solução é a mais simples, portanto, mostrarei apenas a solução 3.

Adicione isto a ~ / .profile:

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

Saia e entre novamente e deve funcionar.


1
Isso funcionou perfeitamente. Deve ser a resposta aceita e +1 para a explicação detalhada
David O programador

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


trabalhou para mim sem o 3. python -m virtualenv <name>
ofer.sheffer

11

No meu caso, corri pip show virtualenvpara obter as informações sobre o pacote virtualenv. Vou parecer com isso e também mostrará a localização do pacote:

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

A partir disso, pegue a parte do local até a .localparte, que neste caso é /home/user/.local/. Você pode encontrar o comando virtualenv em /home/user/.local/bin/virtualenv.

Você pode executar comandos como /home/user/.local/bin/virtualenv newvirtualenv.


10

Eu tive o mesmo problema. Eu usei as seguintes etapas para fazê-lo funcionar

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

É isso. Começou a funcionar.

O uso de sudo -H----> sudo -H: define a HOMEvariável para direcionar o diretório inicial do usuário.


1
Isso corrige para mim exatamente o mesmo problema ... por que não está marcado como solução?
manuele 6/03

9

Você disse que toda vez que você executa, pip installvocê recebe Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. O que você precisa fazer é o seguinte:

  1. Change Directory (vá para o diretório virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Se você fizer um ls, verá que o script está lávirtualenv.py
  3. Execute o script assim: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Espero que isto ajude. Meu conselho seria pesquisar mais sobre os venvs. Aqui está um bom recurso: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

Eu tive problemas porque usei o apt para instalar o pacote python-virtualenv. Para fazê-lo funcionar, tive que remover este pacote apt-get remove python-virtualenve instalá-lo pip install virtualenv.


1
O que deixa a pergunta: por que diabos meu pacote python3-virtualenv está quebrado?
Dmitri DB

6

Verifique se virtualenvé executável.

Se virtualenvnão for encontrado, a execução do caminho completo ( /usr/local/bin/virtualenv) deve funcionar.


5

Acho que seu problema pode ser resolvido usando um link simbólico simples , mas você está criando o link simbólico para o arquivo errado . Tanto quanto eu sei que o virtualenv está instalado /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv, (você pode alterar os números da sua versão do Python), portanto, o comando para criar o link simbólico deve ser:

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

configurar o link sym era tudo o que eu precisava fazer. obrigado.
Kirby

5

No ubuntu 18.4, a instalação da AWS com pip não funciona corretamente. Usando o apt-get install, o problema foi resolvido para mim.

sudo apt-get install python-virtualenv

e para verificar

virtualenv --version

4

Mesmo problema: Então, eu só fiz pip uninstall virtualenv Então pip install virtualenv

pip install virtualenv --user

Coleta virtualenv Usando cache https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl Instalando pacotes recolhidos: virtualenv

Então eu entendi:

O script virtualenv está instalado em '/Users/brahim/Library/Python/2.7/bin', que não está no PATH. Considere adicionar este diretório ao PATH ou, se você preferir suprimir esse aviso, use --no-warn-script-location.

que diz claramente onde está instalado e o que fazer para obtê-lo


2

Se você estiver usando Linux, abra seu terminal e digite virtualenv até a metade e complete automaticamente com a tecla tab. Se não houver conclusão automática, instale o virtualenv no seu sistema executando:

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

Agora você pode navegar para onde deseja criar seu projeto e fazer:

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

Eu atualizei para python 3.7. Continuei tentando instalar o virtualenv, ele sempre retornará "Erro: não foi possível encontrar uma versão que atenda ao requisito virtualenv (das versões: nenhuma)". Li em algum lugar que, a partir de uma certa versão do python 3.x, ele vem com o virtualenv instalado, mas, ao tentar criar um ambiente virtual simples, não funcionou, retornaria um erro por não conhecer o comando virtualenv. Mas funcionou com o seguinte comando da sua resposta, "virtualenv venv --python = python3.7". Nada mais foi feito antes. Caso isso ajude mais alguém. Ambiente MacOS.
Carmena

1

isso funciona no ubuntu 18 e acima (não testado nas versões anteriores):

sudo apt install python3-virtualenv

0

Siga estas etapas básicas para configurar o ambiente virtual

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

precisamos atualizar nossa ~/.bashrc

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

O ~/.bashrcarquivo é simplesmente um script de shell que o Bash executa sempre que você inicia um novo terminal. Você normalmente usa esse arquivo para definir várias configurações. Nesse caso, estamos definindo uma variável de ambiente chamada WORKON_HOME para apontar para o diretório em que nossos ambientes virtuais Python vivem. Em seguida, carregamos todas as configurações necessárias do virtualenvwrapper.

Para atualizar seu ~/.bashrcarquivo, basta usar um editor de texto padrão, o nano é provavelmente o mais fácil de operar. Uma solução mais simples é usar o comando cat e evitar inteiramente os editores:

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

Após editar nosso arquivo ~ / .bashrc, precisamos recarregar as alterações:

source ~/.bashrc

Agora que instalamos o virtualenv e o virtualenvwrapper, a próxima etapa é realmente criar o ambiente virtual Python - fazemos isso usando o comando mkvirtualenv.

mkvirtualenv YOURENV

0

Para mim, foi instalado neste caminho (python 2.7 no MacOS): $ HOME / Library / Python / 2.7 / bin


0

Estou fazendo o curso on-line do iOS de Angela Yu e estava obtendo o mesmo problema e também obtendo o erro 13 de permissão negada ao tentar executar virtualenv --python=/{myPath} {newVirtualEnvName}

Eu resolvi isso por:

  1. alternando para o usuário sudo sudo su
  2. navegando para a minha pasta de destino (onde eu quero que meu novo ambiente virtual viva) ie. / Usuários / muUserName / Ambientes /
  3. comando run em python -m virtualenv python27que python27 é um nome do meu novo ambiente virtual
  4. pasta criada acima pathon27 na minha pasta Ambientes e, em seguida, pude executar source python27/bin/activatepara iniciar meu virtualenv

0

Resposta simples é que, se você não é um usuário sudo, como eu não era um. Você precisa adicionar o caminho da sua pasta bin ( /home/myusername/.local/bin). Então, basicamente, a linha de comando procura em qual desses caminhos é o comando que você digitou.

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

aqui ele pesquisará local/binprimeiro /usr/bine depois /bin.


0

Eu tive o mesmo problema por um longo tempo. Eu resolvi executando estes dois comandos, primeiro é instalar o segundo é ativar o env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Observe que estou usando python3, você pode alterá-lo para apenas pythonse python3falhar. Obrigado.


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

3 comandos e tudo funcionando!


A pergunta é para o Mac OS, não háapt
Matteo

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.