Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get virtualenvwrapper and cygwin to co-operate?

I am trying to get virtualenv[wrapper] to work on my Windows machine through Cygwin. The install is successful, together with easy_install, based on these directions: http://www.doughellmann.com/docs/virtualenvwrapper/.

The problem comes in when I use the mkvirtualenv [name_of_vir_env]. I get the following output:

$ mkvirtualenv testenv
New python executable in testenv\Scripts\python.exe
Installing setuptools.................done.
bash: D:\.virtualenvs/testenv/bin/postactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postactivate': No such file or directory
bash: D:\.virtualenvs/testenv/bin/predeactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/predeactivate': No such file or directory
bash: D:\.virtualenvs/testenv/bin/postdeactivate: No such file or directory
chmod: getting attributes of `D:\\.virtualenvs/testenv/bin/postdeactivate': No such file or directory
ERROR: Environment 'D:\.virtualenvs/testenv' does not contain an activate script.

Inside the testenv directory, there is no bin subdirectory, rather only Lib and Scripts. Scripts contains activate.bat which is supposed to be used to activate this particular environment, however if I try to run this out through bash I get an error:

$ ./activate.bat
./activate.bat: line 1: @echo: command not found
./activate.bat: line 4: syntax error near unexpected token `('
./activate.bat: line 4: `if not defined PROMPT ('

I can exit bash and call activate.bat and this changes to the desired environment. But then not being in bash I cannot use the workon command, or any other in virtualenvwrapper_bashrc.

How can I get the two to work together, that is, stay in bash so I can use the commands in virtualenvwrapper_bashrc?

like image 261
Edvinas Avatar asked Feb 01 '10 00:02

Edvinas


2 Answers

I'm not experienced with virtualenvwrapper, but do use virtualenv regularly. I don't think the activate.bat is intended to be run under cygwin, it works when run in the regular windows shell. I think if you are using cygwin, you might want to use something more like bin/activate(the version for unix-like OS's).

The cygwin environment within bash could be drastically different from the standard environment activate.bat expects to run in, so finding an activate script that would work with bash(perhaps find a copy from a unix version) would probably get you to where you can run your virtualenv within bash.

like image 108
Kekoa Avatar answered Nov 06 '22 04:11

Kekoa


This post looks promising http://atbrox.com/2009/09/21/how-to-get-pipvirtualenvfabric-working-on-cygwin/

-- Quentin

like image 33
qneill Avatar answered Nov 06 '22 06:11

qneill