Comando Virtualenv no encontrado

208

No pude ir virtualenva trabajar a pesar de varios intentos. Instalé virtualenven MAC OS X usando:

pip install virtualenv

y también he agregado el PATHa mi .bash_profile. Cada vez que intento ejecutar el virtualenvcomando, me devuelve:

-bash: virtualenv: command not found

Cada vez que corro pip install virtualenv, vuelve:

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

Entiendo que en mac, el virtualenvdebería estar instalado correctamente en

/usr/local/bin

De virtualenvhecho, está instalado /usr/local/bin, pero cada vez que intento ejecutar el virtualenvcomando, no se encuentra el comando. También he intentado ejecutar el virtualenvcomando en el directorio /usr/local/bin, y me da el mismo resultado:

-bash: virtualenv: command not found

Estas son las RUTA que agregué a mi .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

¿Alguna solución para esto? ¿Por qué es este el caso?

Arial
fuente
1
Intente agregar un enlace simbólico al ejecutable virtualenv en / usr / local / bin
Justin Fay
¿Dónde debo crear el enlace simbólico? Todavía no funciona a pesar de que intenté agregar un enlace simbólico en el directorio donde quiero usar virtualenv @justinfay
Arial
2
al mirar las rutas de arriba podría ser algo así como, reemplazar la última ruta en el comando con la ruta al ejecutable virtualenv real:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay
2
lo que funcionó para mí fue agregar un enlace simbólicoln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza
No funciona en un lubuntu
c24b

Respuestas:

337

Si lo instaló con

pip install virtualenv

Necesitas correr

sudo /usr/bin/easy_install virtualenv

lo que le sitúa en /usr/local/bin/.

El directorio anterior por defecto debe estar en su PATH; de lo contrario, edite su .zshrc(o. bashrc) en consecuencia.

Tal Avissar
fuente
1
siempre contento de ayudar @nguns
Tal Avissar
en la instancia de AWS EC2 con Amazon Linux, si está intentando Let's Encrypt's certbot, pruebe esta solución. Esta fue la única sugerencia que resolvió mi problema virtualenv.
emrahgunduz
2
¡Eress el mejor!
Leon wu
66
la salida essudo: /usr/bin/easy_install: command not found
Ced
3
Gracias por esto, pero desearía saber qué brujería está funcionando aquí, ¿qué hace "easy_install" que no hace el pip normal? es decir, ¿por qué funciona esto?
Thomas Kimber
153

Me enfrenté al mismo problema y así es como lo resolví:

  1. El problema se me ocurrió porque instalé virtualenv a través de pip como usuario habitual (no root). pip instaló los paquetes en el directorio~/.local/lib/pythonX.X/site-packages
  2. Cuando ejecuté pip como root o con privilegios de administrador (sudo), instaló paquetes en /usr/lib/pythonX.X/dist-packages. Este camino puede ser diferente para ti.
  3. El comando virtualenv se reconoce solo en el segundo escenario
  4. Entonces, para resolver el problema, hazlo pip uninstall virtualenvy luego vuelve a instalarlo con sudo pip install virtualenv(o instálalo como root)
vettipayyan
fuente
8
Seguí su solución y recibí el mensaje "... Si ejecuta pip con sudo, es posible que desee la bandera -H de sudo". Finalmente sudo -H pip install virtualenv hizo el trabajo por mí (en OS X), gracias
smudo78
1
¿Qué pasa si la raíz no está disponible en su máquina?
user5359531
Resuelve el problema. Supongo que este puede ir al directorio global en lugar de --user.
Este problema también ocurre cuando pip se instala en ~ / .local / SOME_PATH. Me cped todo en site-packagesdir en /usr/lib/pythonx.x/site-packages, y rm -rfed el directorio original.
Yoon
47

La respuesta más simple. Sólo:

pip uninstall virtualenv

y entonces:

pip install virtualenv

O tal vez instaló virtualenv con sudo, en ese caso:

pip install --user virtualenv
Luis Martins
fuente
¡Guauu! Esto es lo que hizo el truco para mí. pyenvPor cierto
race_carr
Este es el camino a seguir para Mac OS X con brew.
TCSGrad
He estado luchando contra esto durante semanas y ha estado obstaculizando mi tiempo limitado para trabajar en un proyecto de Python y esta fue la única solución para trabajar en Mac. ¡Gracias!
HellaDev
37

En Ubuntu 18.04 LTS también enfrenté el mismo error. El siguiente comando funcionó:

sudo apt-get install python-virtualenv
sam
fuente
1
brew install python-virtualenvno existe
Leonard
Trabajó como un encanto en mi 18.04, gracias
Nischaya Sharma
Votado para promover aptcomo sucesor de apt-get.
barba gris
24

Tuve el mismo problema en Mac OS X El Capitan .

Cuando instalé virtualenvasí sudo pip3 install virtualenvno tenía virtualenvbajo mi línea de comando.

Resolví este problema siguiendo esos pasos:

  1. Desinstalar instalaciones anteriores.
  2. Cambie a la cuenta de superusuario antes de la virtualenvinstalación llamandosudo su
  3. Instalar virtualenvllamandopip3 install virtualenv
  4. Finalmente, debería poder acceder virtualenvdesde ambos usery desde la super usercuenta.
Krystian Sakowski
fuente
15

Resolver el problema

Intenta instalar con la --verbosebandera

pip install virtualenv --verbose

La salida se verá así

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

Desde el resultado podemos ver que está instalado en, /home/manos/.local/bin/virtualenvasí que asegúrese de que PATH incluya eso.

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

En mi caso, podemos ver claramente que /home/manos/.local/binfalta por completo y es por eso que el shell no puede encontrar el programa.

Soluciones

Podemos resolver esto de muchas maneras:

  1. Podemos instalar directamente en un directorio específico jugando con las opciones de pip (no recomendado).
  2. Crea enlaces simbólicos apropiados en /usr/local/bino similar.
  3. Añadir /home/manos/.local/bina la RUTA.
  4. Instalar como sudo para instalar directamente en /usr/local/bin

Las dos últimas opciones son probablemente las más sensatas. La última solución es la más simple, por lo tanto, solo mostraré la solución 3.

Agregue esto a ~ / .profile:

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

Salga y vuelva a entrar y debería funcionar.

Pithikos
fuente
1
Esto funcionó perfectamente. Debería ser la respuesta aceptada y +1 para la explicación detallada
David The Programmer
13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name

Nikkey
fuente
funcionó para mí sin 3. python -m virtualenv <nombre>
ofer.sheffer
11

En mi caso, corrí pip show virtualenvpara obtener la información sobre el paquete virtualenv. Me veré similar a esto y también mostraré la ubicación del paquete:

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 de eso, tome la parte de ubicación hasta la .localparte, que en este caso es /home/user/.local/. Puede encontrar el comando virtualenv en /home/user/.local/bin/virtualenv.

Luego puede ejecutar comandos como /home/user/.local/bin/virtualenv newvirtualenv.

Dejv
fuente
10

Tuve el mismo problema. Usé los siguientes pasos para que funcione

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

Eso es. Comenzó a funcionar.

Uso de sudo -H----> sudo -H: establecer HOMEvariable para el directorio de inicio del usuario objetivo.

Abby
fuente
1
Me soluciona exactamente el mismo problema ... ¿por qué no está marcado como la solución?
manuele
9

Dijiste eso cada vez que corres lo pip installque obtienes Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Lo que debe hacer es lo siguiente:

  1. Cambiar directorio (vaya a aquel donde virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Si haces un ls, verás que el script está ahívirtualenv.py
  3. Ejecute el script así: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Espero que esto ayude. Mi consejo sería investigar más sobre los venvs. Aquí hay un buen recurso: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/

Bouramas
fuente
8

Tuve problemas porque solía instalar el paquete python-virtualenv. Para que funcione, tuve que eliminar este paquete apt-get remove python-virtualenve instalarlo con pip install virtualenv.

Boris Davidov
fuente
1
Lo que deja la pregunta: ¿Por qué demonios está roto mi paquete python3-virtualenv?
Dmitri DB
6

Asegúrese de que virtualenvsea ​​ejecutable.

Si virtualenvno se encuentra, la ruta completa ( /usr/local/bin/virtualenv) debería funcionar.

Vértigo Rayo
fuente
5

Creo que su problema se puede resolver utilizando un enlace simbólico simple , pero está creando el enlace simbólico al archivo incorrecto . Hasta donde sé, virtualenv está instalado /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv(puede cambiar los números para su versión de Python), por lo que el comando para crear el enlace simbólico debería ser:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv
Bobby Wan-Kenobi
fuente
configurar el enlace sym era todo lo que necesitaba hacer. gracias.
Kirby
5

En ubuntu 18.4 en la instalación de AWS con pip no funciona correctamente. Usando apt-get install, el problema se resolvió para mí.

sudo apt-get install python-virtualenv

y para comprobar

virtualenv --version
Dama
fuente
4

Mismo problema: así que lo hice pip uninstall virtualenv entonces pip install virtualenv

pip install virtualenv --user

Recopilación de virtualenv Uso de https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl .

Entonces obtuve esto:

El script virtualenv está instalado en '/Users/brahim/Library/Python/2.7/bin' que no está en PATH. Considere agregar este directorio a PATH o, si prefiere suprimir esta advertencia, use --no-warn-script-location.

que dice claramente dónde está instalado y qué hacer para obtenerlo

brahimm
fuente
2

Si está utilizando Linux, abra su terminal y escriba virtualenv hasta la mitad y autocomplete con la tecla de tabulación. Si no hay autocompletado, instale virtualenv en su sistema ejecutando:

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

Ahora puede navegar a donde desea crear su proyecto y hacer:

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
7guyo
fuente
Actualicé a Python 3.7. Seguí intentando instalar virtualenv, siempre devolverá "Error: no se pudo encontrar una versión que satisfaga el requisito virtualenv (de versiones: ninguna)". Leí en alguna parte que, desde cierta versión de python 3.x, viene con virtualenv instalado, pero tratar de crear un entorno virtual simple, no funcionó, devolvería un error de que no conoce el comando virtualenv. Pero funcionó con el siguiente comando de su respuesta, "virtualenv venv --python = python3.7". Nada más hecho antes. En caso de que ayude a alguien más. Entorno MacOS.
CarmenA
1

esto funciona en ubuntu 18 y superior (no probado en versiones anteriores):

sudo apt install python3-virtualenv
CyanBook
fuente
1

Tuve el mismo problema durante mucho tiempo. Lo resolví ejecutando estos dos comandos, el primero es instalar el segundo es activar el entorno:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Tenga en cuenta que estoy usando python3, puede cambiarlo solo pythonsi python3falla. Gracias.

Dev_mjm
fuente
0

Siga estos pasos básicos para configurar el entorno virtual

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

necesitamos actualizar nuestro ~/.bashrc

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

El ~/.bashrcarchivo es simplemente un script de shell que Bash ejecuta cada vez que inicia un nuevo terminal. Normalmente usa este archivo para establecer varias configuraciones. En este caso, estamos configurando una variable de entorno llamada WORKON_HOME para apuntar al directorio donde viven nuestros entornos virtuales de Python. Luego cargamos las configuraciones necesarias de virtualenvwrapper.

Para actualizar su ~/.bashrcarchivo simplemente use un editor de texto estándar, nano es probablemente el más fácil de operar. Una solución más simple es usar el comando cat y evitar los editores por completo:

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

Después de editar nuestro archivo ~ / .bashrc, necesitamos volver a cargar los cambios:

source ~/.bashrc

Ahora que hemos instalado virtualenv y virtualenvwrapper, el siguiente paso es crear realmente el entorno virtual de Python; lo hacemos utilizando el comando mkvirtualenv.

mkvirtualenv YOURENV
usuario8224289
fuente
0

Para mí, se instaló en esta ruta (python 2.7 en MacOS): $ HOME / Library / Python / 2.7 / bin

Ravish Bhagdev
fuente
0

Estoy haciendo el curso de iOS en línea de Angela Yu y estaba teniendo el mismo problema y también recibía el permiso 13 de permiso denegado cuando intentaba ejecutar virtualenv --python=/{myPath} {newVirtualEnvName}

Lo resolví por:

  1. cambiar a usuario de sudo sudo su
  2. navegando a mi carpeta de destino (donde quiero que viva mi nuevo entorno virtual), es decir. / Usuarios / muUserName / Entornos /
  3. ejecutar comando python -m virtualenv python27donde python27 es un nombre de mi nuevo entorno virtual
  4. carpeta creada arriba pathon27 en micarpeta Entornos , y luego pude ejecutarsource python27/bin/activatepara iniciar mi virtualenv
marika.daboja
fuente
0

La respuesta simple es que si no eres un usuario de sudo como yo no lo era, debes agregar la ruta de tu carpeta bin (/home/myusername/.local/bin ). Así que, básicamente, la línea de comando busca en cuál de estas rutas es el comando que has escrito.

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

aquí buscará local/binprimero, luego /usr/biny luego /bin.

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

¡3 comandos y todo funciona!

Rapaces de arte
fuente
La pregunta es para Mac OS, no hayapt
Matteo
-5
sudo apt-get install python-virtualenv
callejero
fuente
1
¿Viste que estaba pidiendo Mac OSX?
Mariano Kamp