2015-06-01 103 views
7

我在Windows(7,64位)上使用gitbash。我試圖通過調用python -m venv venv使用python 3.4的內置venv模塊創建一個venv,並且它創建成功,但生成的venv不包含bash激活腳本,只有.bat.ps1從gitbash激活pyvenv窗口

爲Python 2.6.6(13.0.1版)的virtualenv庫中創建的文件夾venv/Scripts/以下四個文件:activateactivate.batactivate.ps1activate_this.py

由於gitbash控制檯不能使用bat或powershell腳本,我真的不想回到windows cmd提示符或虛擬機,有沒有什麼辦法可以讓pyvenv創建一個shell當我在窗戶上時腳本爲我?

+0

我現在有這個確切的問題。我甚至升級到Python 3.5,但沒有解決它。你有沒有找到解決方案? –

+0

我認爲這是一個錯誤。我需要使用Windows 7,8在項目上進行開發,但總是首先安裝Git Bash Shell,這樣我就可以避免笨重的DOS cmd shell並獲取我的grep,查找命令,別名等。我將嘗試生成一個venv在Linux上並歸檔激活/停用以便以後粘貼到基於Windows的系統上。 –

回答

2

這是(目前)的設計。

在Windows中,只安裝了命令提示符(.bat)和PowerShell(.ps1)腳本。 The venv documentation表示「腳本的調用是特定於平臺的」 - 請參閱該文檔中的表列出命令以激活不同平臺上的venv。如果您查看venv源代碼,可以看到它區分Windows和POSIX環境並相應地安裝腳本。

但是,有一個open bug請求還應安裝其他shell的腳本。在等待可能解決的問題時,有一種解決方法:可以從本地計算機或cPython hg repositorydirect link to the file)中獲取bash(或其他shell)腳本,並將其放入Windows特定腳本旁邊的Scripts文件夾中。您需要將__VENV_DIR__更改爲您的venv所在的目錄,將__VENV_BIN_NAME__更改爲「bin」,並將__VENV_PROMPT__更改爲激活venv時(例如「(env)」)的bash提示所需的任何內容。設置權限,你應該很好去。

+0

'activate'文件不起作用,因爲它包含可能由python腳本填充的佔位符 – Eric

3

你不必擔心虛擬ENV bash腳本的存在去的Git的bash和使用. Scripts/activatesource Scripts/activate如本主題在答覆中提到Can not activate a virtualenv in GIT bash mingw32 for Windows

+0

因爲只有activate.bat和Activate.ps1,所以你會得到「No such file or directory」錯誤不工作。 – nme

1

下面的代碼說明如何建立和啓動一個名爲env_project Git中的Bash一個文件夾命名爲項目中的virtualenv:

mkdir project 
cd project/ 
virtualenv env_project 
. activate env_project/ 
+0

這是一個新的/最近的功能添加? –

0

這個工作對我來說: 。激活