ERROR virtualenvwrapper en GitBash

Intento configurar virtualenvwrapper en GitBash (Windows 7). Escribo las siguientes líneas: 1 $ export WORKON_HOME=$HOME/.virtualenvs 2 $ export MSYS_HOME=/c/msys/1.0 3 $ source /usr/local/bin/virtualenvwrapper.sh

Y la última línea me da un error: source /usr/local/bin/virtualenvwrapper.sh sh.exe: /usr/local/bin/virtualenvwrapper.sh: No such file or directory

Encuentro, donde en mi disco está virtualenvwrapper.sh y cambio el nombre del directorio. En mi computadora es /c/Python27/Scripts/virtualenvwrapper.sh . Cuando vuelvo a ejecutar el comando

$source /c/Python27/Scripts/virtualenvwrapper.sh

Recibo el siguiente mensaje de ERROR: sh.exe":mktemp:command not found ERROR: virtualenvwrapper could not create a temporary file name

Reviso mi variable de entorno: C:\python27\;C:\python27\scripts\;C:\python27\scripts\virtualenvwrapper.sh\;C:\msys;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Git\bin\

No se donde cometi un error

El error indica que sh.exe (el shell) no puede encontrar un comando que coincida con mktemp , lo que significa que no está presente en GitBash , al menos no en su entorno.

Una opción es que puede descargar una versión de mktemp para Windows , como http://gnuwin32.sourceforge.net/packages/mktemp.htm y luego colocarla en el directorio C: \ Archivos de progtwig (x86) \ Git \ bin . El shell debe poder coincidir con el comando mktemp y poder continuar.

He encontrado una solución para este problema en una máquina con Windows 8 usando GitBash.

TL; DR:

Obtenga mktemp para Windows, póngalo en un lugar que pueda ser utilizado por GitBash, luego edite virtualenvwrapper.sh y en la línea 202, agregue un comando táctil con el archivo creado. Debe tener un aspecto como este:

 file="$(virtualenvwrapper_mktemp -t virtualenvwrapper-$suffix-XXXXXXXXXX)" touch $file # this is the new line if [ $? -ne 0 ] || [ -z "$file" ] || [ ! -f "$file" ] 

RESPUESTA COMPLETA:

Como mencionó khampson, debe descargar mktemp y colocarlo donde se encuentra su directorio Git \ bin ( C: \ Archivos de progtwig (x86) \ Git \ bin ). Después de eso, ejecutar el archivo virtualenvwrapper.sh causará un error que dice:

 path = C:/Users/User/AppData/Local/Temp/virtualenvwrapper-initialize-hook-XXXXXX XXXX lpPathBuffer = C:\Users\User\AppData\Local\Temp\ szTempName = C:\Users\User\AppData\Local\Temp\tmp23A9.tmp path = C:\Users\User\AppData\Local\Temp\tmp23A9.tmp fd = 3 ERROR: virtualenvwrapper could not create a temporary file name. 

En la línea 202 ( fuente ), se ve una llamada a la función a virtualenvwrapper_mktemp (que es solo una función de envoltura para llamar a mktemp) y se supone que esto crea el nuevo archivo temporal, pero aparentemente no lo hace en Windows.

Al revisar el manual de mktemp, en la sección de ejemplos, verá que siempre están enviando algo a ese nuevo identificador de archivos, lo que obliga a crear el archivo.

Entonces, en lugar de enviar una cadena vacía con eco como el manual, solo agregue un comando táctil a virtualenvwrapper.sh :

 file="$(virtualenvwrapper_mktemp -t virtualenvwrapper-$suffix-XXXXXXXXXX)" touch $file # new command here 

Esto debería obligar a Windows a crear el archivo temporal. No puedo publicar el rest de los enlaces debido a la baja repetición, pero espero que esto todavía ayude a alguien.

EDITAR

Creé una solicitud de extracción en el repository virtualenvwrapper y se aprobó. Puedes ver el comando táctil que sugerí agregar aquí .