bash: mkvirtualenv: comando no encontrado

9 minutos de lectura

avatar de usuario
mike pennington

Después de seguir las instrucciones de de Doug Hellman virtualenvwrapper correotodavía no pude iniciar un entorno de prueba.

[mpenning@tsunami ~]$ mkvirtualenv test
-bash: mkvirtualenv: command not found
[mpenning@tsunami ~]$

Cabe señalar que estoy usando WORKON_HOME eso no esta en mi $HOME. Traté de buscar /usr/local/bin/virtualenvwrapper.sh como se muestra en el virtualenvwrapper documentos de instalaciónpero no existe.

Estoy ejecutando CentOS 6 y python 2.6.6, si esto importa.


# File: ~/.bash_profile
# ...

export WORKON_HOME="/opt/virtual_env/"
source "/opt/virtual_env/bin/virtualenvwrapper_bashrc"

avatar de usuario
mike pennington

Solución 1:

Por alguna razón, virtualenvwrapper.sh instalado en /usr/bin/virtualenvwrapper.shen lugar de debajo /usr/local/bin.

Lo siguiente en mi .bash_profile obras…

source "/usr/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"

Mi instalación parece funcionar bien sin abastecimiento virtualenvwrapper_bashrc

Solución 2:

Alternativamente, como se menciona a continuación, podría aprovechar la posibilidad de que virtualenvwrapper.sh ya está en tu caparazón PATH y solo emite un source `which virtualenvwrapper.sh`

  • Ajuste WORKON_HOME a “~/.virtualenvs” (valor por defecto) permite configurar entornos virtuales privados

    – Pierre de LESPINAY

    19 de agosto de 2014 a las 12:55


  • Si instala usando el administrador de paquetes de su distribución, los archivos estarán en /usr/bin en vez de /usr/local/bin. En general, no debe asumir que se encontrará uno u otro; esa es una de las razones por las que tenemos un PATH variable.

    – triplete

    31 de julio de 2016 a las 20:38

  • Esta respuesta se basó en la instalación de virtualenvwrapper con pip, que es lo que prefiero hacer.

    –Mike Pennington

    31 de julio de 2016 a las 20:43

  • WORKON_HOME es opcional y no tiene nada que ver con la solución.

    – bollos

    16 de agosto de 2020 a las 12:47

  • encontré virtualenvwrapper/virtualenvwrapper.sh en /usr/share Ubuntu 20.04

    – noobninja

    1 de enero de 2021 a las 11:47

avatar de usuario
Erich

Probar:

source `which virtualenvwrapper.sh`

Los acentos graves son sustitución de comandos: toman lo que el programa imprime y lo colocan en la expresión. En este caso, “cuál” verifica $PATH para encontrar virtualenvwrapper.sh y genera la ruta. Luego, el shell lee el script a través de ‘fuente’.

Si desea que esto suceda cada vez que reinicie su shell, probablemente sea mejor obtener primero el resultado del comando “cuál” y luego colocar la línea “fuente” en su shell, algo como esto:

echo "source /path/to/virtualenvwrapper.sh" >> ~/.profile

^ Esto puede diferir ligeramente según su caparazón. Además, tenga cuidado de no usar un solo > ya que esto truncará su ~/.profile 😮

  • Si bien esto podría ser una pista valiosa para resolver el problema, una respuesta realmente necesita un poco más de detalle que esto. Edite para explicar cómo esto resolverá el problema. Alternativamente, considere escribir esto como un comentario en su lugar.

    –Toby Speight

    7 julio 2016 a las 16:48

  • Esto resolvió mi problema. Pero, ¿alguien explicará por qué y cómo?

    – h0r53

    21 de febrero de 2017 a las 2:11

  • Los acentos graves son sustitución de comandos: toman lo que el programa imprime y lo colocan en la expresión. En este caso, “cuál” verifica $PATH para encontrar virtualenvwrapper.sh y genera la ruta. Luego, el shell lee el script a través de ‘fuente’.

    – Eric

    28 de febrero de 2017 a las 0:45

avatar de usuario
Nick Benes

Tuve el mismo problema en OS X 10.9.1 con Python 2.7.5. No hay problemas con WORKON_HOME para mí, pero tuve que agregar manualmente source "/usr/local/bin/virtualenvwrapper.sh" a ~/.bash_profile (o ~/.bashrc en Unix) después de ejecutar pip install virtualenvwrapper

  • ¿Dónde agregó manualmente la fuente “/usr/local/bin/virtualenvwrapper.sh”?

    – Gregología

    19/02/2014 a las 21:50

  • @Gregology Agregué esa línea a ~/.bash_profile. Tenga en cuenta que cuando lo agregue por primera vez, tendrá que volver a cargar el terminal (que se ejecuta .bash_profile) o simplemente ejecutar eso source Comando directamente desde la línea de comandos.

    – Nick Benes

    21 de febrero de 2014 a las 7:33

  • Sería muy útil si tuviera un título con el nombre del archivo y mostrara todo el contenido para que no tenga que recibir preguntas de seguimiento sobre “¿dónde lo puso?”

    – J Gallardo

    11 de noviembre de 2015 a las 20:48

  • Ya sea que uses .bash_profile o .bashrc en realidad no es una consecuencia directa de la plataforma que esté utilizando, aunque es posible que falte una u otra en algunas plataformas. Consulte la página del manual de Bash para conocer sus diferencias. En general, solo debería necesitar esto en su .bash_profilepero algunas distribuciones usan configuraciones que complican las cosas.

    – triplete

    31/07/2016 a las 20:36

avatar de usuario
Keshav

Requisitos previos para ejecutar este comando –

  1. pip (acrónimo recursivo de PAGSip yonstalls PAGSckages) es un sistema de administración de paquetes que se utiliza para instalar y administrar paquetes de software escritos en Python. Muchos paquetes se pueden encontrar en el índice de paquetes de Python (PyPI).

    sudo apt-get install python-pip

  2. Instalar entorno virtual. Se utiliza para crear un entorno virtual, para instalar paquetes y dependencias de múltiples proyectos aislados entre sí.

    sudo pip instalar virtualenv

  3. Instalar contenedor de entorno virtual Acerca del envoltorio de entorno virtual

    sudo pip instalar virtualenvwrapper

Después de instalar los requisitos previos necesita poner en acción el envoltorio de entorno virtual para crear un entorno virtual. Los siguientes son los pasos –

  1. establecer el directorio de entorno virtual en la variable de ruta-
    export WORKON_HOME=(directory you need to save envs)

  2. source /usr/local/bin/virtualenvwrapper.sh -p $WORKON_HOME

Como lo mencionó @Mike, fuente `what virtualenvwrapper.sh` o which virtualenvwrapper.sh se puede utilizar para localizar el archivo virtualenvwrapper.sh.

Es mejor colocar las dos líneas anteriores en ~/.bashrc para evitar ejecutar los comandos anteriores cada vez que abre un nuevo shell. Eso es todo lo que necesitas para crear un entorno usando mkvirtualenv

Puntos a tener en cuenta –

  • En Ubuntu, es posible que necesite instalar virtualenv y virtualenvwrapper como root. Simplemente prefije el comando anterior con sudo.
  • Según el proceso utilizado para instalar virtualenv, la ruta a virtualenvwrapper.sh puede variar. Encuentre la ruta adecuada ejecutando $ find /usr -name virtualenvwrapper.sh. Ajuste la línea en su secuencia de comandos .bash_profile o .bashrc en consecuencia.

avatar de usuario
dar trabajo

Use este procedimiento para crear un entorno virtual en ubuntu

Paso 1

Instalar pipa

   sudo apt-get install python-pip

paso 2

Instalar entorno virtual

   sudo pip install virtualenv

paso 3

Cree un directorio para almacenar sus virtualenvs (yo uso ~/.virtualenvs)

   mkdir ~/.virtualenvs

o use este comando para instalar una versión específica de python en env

virtualenv -p /usr/bin/python3.6 venv

paso 4

   sudo pip install virtualenvwrapper

paso 5

   sudo nano ~/.bashrc

paso 6

Agregue este código de dos líneas al final del archivo bashrc

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

paso 7

Abrir nueva terminal (recomendado)

paso 8

Crear un nuevo entorno virtual

  mkvirtualenv myawesomeproject

paso 9

Para cargar o cambiar entre virtualenvs, use el comando workon:

  workon myawesomeproject

paso 10

Para salir de su nuevo virtualenv, use

 deactivate

y asegúrese de usar pip vs pip3

O siga los pasos a continuación para instalar el entorno virtual usando python3

Instalar entorno

python3 -m venv my-project-env

y activa tu entorno virtual usando el siguiente comando:

source my-project-env/bin/activate

o si quieres una versión particular de python

virtualenv --python=python3.7.5 myenv

avatar de usuario
Comunidad

Como acabo de pasar por un lastre, intentaré escribir la respuesta que hubiera deseado hace dos horas. Esto es para personas que no solo quieren la solución de copiar y pegar

Primero: ¿Se pregunta por qué copiar y pegar rutas funciona para algunas personas mientras que para otras no funciona?** La razón principal por la que las soluciones difieren son las diferentes versiones de Python, 2.x o 3.x. En realidad, hay versiones distintas de virtualenv y virtualenvwrapper que funcionan con python 2 o 3. Si está en python 2, instálelo así:

sudo pip install virutalenv
sudo pip install virtualenvwrapper

Si planea usar python 3, instale las versiones relacionadas de python 3

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

Ha instalado con éxito los paquetes para su versión de Python y está todo listo, ¿verdad? Bueno, inténtalo. Escribe workon en su terminal. Su terminal no podrá encontrar el comando (workon es un comando de virtualenvwrapper). Por supuesto que no. Workon es un ejecutable que solo estará disponible una vez que cargue/obtenga el archivo virtualenvwrapper.sh. Pero el oficial guía de instalación has cubierto esto, ¿verdad? Simplemente abra su .bash_profile e inserte lo siguiente, dice en la documentación:

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

especialmente el mando source /usr/local/bin/virtualenvwrapper.sh parece útil ya que el comando parece cargar/fuente del archivo deseado virtualenvwrapper.sh que contiene todos los comandos con los que desea trabajar como workon y mkvirtualenv. Pero sí, no. Al seguir la guía de instalación oficial, es muy probable que reciba el error de la publicación inicial: mkvirtualenv: command not found. Todavía no se encuentra ningún comando y todavía estás frustrado. Entonces, ¿cuál es el problema aquí? El problema es que virtualenvwrapper.sh no está donde lo estás buscando en este momento. Breve recordatorio… estás buscando aquí:

source /usr/local/bin/virtualenvwrapper.sh

Pero hay una forma bastante sencilla de encontrar el archivo deseado. Sólo tipo

which virtualenvwrapper

a tu terminal. Esto buscará su SENDERO para el archivo, ya que es muy probable que esté en alguna carpeta que esté incluida en el PATH de tu sistema.

Si su sistema es muy exótico, el archivo deseado se ocultará fuera de una carpeta PATH. En ese caso usted puede encontrar el camino a virtalenvwrapper.sh con el comando shell find / -name virtualenvwrapper.sh

Su resultado puede ser algo como esto: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh
Felicidades. You have found your missing file!. Ahora todo lo que tiene que hacer es cambiar un comando en su .bash_profile. Solo cambia:

source "/usr/local/bin/virtualenvwrapper.sh"

a:

"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"

Felicidades. Virtualenvwrapper ahora funciona en su sistema. Pero puede hacer una cosa más para mejorar su solución. Si ha encontrado el archivo virtualenvwrapper.sh con el comando which virtualenvwrapper.sh sabes que está dentro de una carpeta del PATH. Entonces, si solo escribe el nombre del archivo, su sistema de archivos asumirá que el archivo está dentro de una carpeta PATH. Así que no tienes que escribir la ruta completa. Sólo tipo:

source "virtualenvwrapper.sh"

Eso es todo. Ya no estás frustrado. Has solucionado tu problema. Ojalá.

Usando Git Bash en Windows 10 y Python36 para Windows, encontré virtualenvwrapper.sh en un lugar ligeramente diferente y ejecutarlo resolvió el problema.

source virtualenvwrapper.sh 
/c/users/[myUserName]/AppData/Local/Programs/Python36/Scripts

  • Usando Windows 10, Git Bash y Python 3.8, para mí estaba en: /c/Users/[myUserName]/AppData/Roaming/Python/Python38/Scripts

    – Abono

    21 de septiembre de 2020 a las 15:04


  • @Manur gracias, funcionó. en funcionamiento source virtualenwrapper.sh no pude ver este camino, cuando lo hice source /c/Users/[myUserName]/AppData/Roaming/Python/Python38/Scripts, mkvirtualenv <name> trabajó.

    – y_159

    24 de junio de 2021 a las 3:53

¿Ha sido útil esta solución?