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
?
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.
This post looks promising http://atbrox.com/2009/09/21/how-to-get-pipvirtualenvfabric-working-on-cygwin/
-- Quentin
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With