2010-02-01 54 views
9

我想通過Cygwin在我的Windows機器上運行virtualenv[wrapper]。根據以下指示安裝成功:easy_installhttp://www.doughellmann.com/docs/virtualenvwrapper/如何讓virtualenvwrapper和cygwin合作?

問題出在我使用mkvirtualenv [name_of_vir_env]時。我得到以下輸出:

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

裏面的testenv目錄,沒有bin子目錄,而只有LibScriptsScripts包含activate.bat這是應該被用來激活這個特定的環境,但是,如果我試圖通過bash跑了這一點,我得到一個錯誤:

$ ./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 (' 

我可以退出bash,並呼籲activate.bat,這將改變所需環境。但後來不在bash我不能使用workon命令,或者其他virtualenvwrapper_bashrc

我怎樣才能讓這兩個人一起工作,那就是留在bash,這樣我就可以使用virtualenvwrapper_bashrc的命令了?

回答

0

我不知道的virtualenv,但我看到的是什麼樣子cygwin的版本的經典混合路徑語法問題:

您的字符串是:

D:\.virtualenvs/testenv/bin/predeactivate 

但Cygwin正在將反斜槓解釋爲轉義 爲了 」。」字符,生產:

D:.virtualenvs/testenv/bin/postactivate 

這是在你引用的錯誤文本,顯然是一個格式不正確的路徑。檢查你的實際環境變量 - 可能是DOS/Windows路徑語法,而內部部分是在cygwin/unix語法中。

如果是這樣,請嘗試使用os.path.join將兩個部分拼接在一起,看看是否得到一致的語法。

3

我對virtualenvwrapper沒有經驗,但經常使用virtualenv。我不認爲activate.bat打算在cygwin下運行,它在常規windows shell中運行時工作。我想如果你使用的是cygwin,你可能想要使用更像bin/activate(unix類OS的版本)的東西。

bash中的cygwin環境可能與標準環境activate.bat期望運行在很大程度上不同,因此找到一個可以與bash一起使用的激活腳本(可能從unix版本中找到一個副本)可能會讓你你可以在bash中運行你的virtualenv。

+0

不得不使用。 VENV /腳本/激活 – Jabez

1

這爲我做:

https://bitbucket.org/cliffxuan/virtualenvwrapper-for-cygwin-windows-python

香草virtualenvwrapper似乎不支持Cygwin環境。

一個警告不過是,Scripts目錄的virtualenv下可執行腳本,如果你明確地傳遞他們的python命令,不要使用~或其他任何Cygwin的隱式轉換開始/cygdriv/c/... -the路徑是唯一可執行本地Windows Python無法查看這些路徑。