2015-06-01 11 views
7

Używam gitbash na windows (7, 64bit). Próbowałem utworzyć venv przy użyciu wbudowanego modułu Pythona 3.4, wywołując python -m venv venv, i utworzony pomyślnie, ale wynikowy venv nie zawiera skryptu aktywującego bash, tylko .bat i .ps1.Aktywacja pyvenv z gitbash dla Windows

virtualenv biblioteka dla Pythona 2.6.6 (wersja 13.0.1) utworzona następujące cztery pliki w folderze venv/Scripts/: activate, activate.bat, activate.ps1 i activate_this.py.

Jako, że konsola gitbash nie może używać skryptów bat lub powershell, a ja naprawdę nie chcę cofać się do wiersza poleceń cmd systemu Windows lub maszyny wirtualnej, czy istnieje sposób, w jaki mogę uzyskać pyvenv, aby utworzyć powłokę skrypt dla mnie, gdy jestem w systemie Windows?

+0

Mam teraz dokładnie ten problem. Uaktualniłem nawet do Pythona 3.5, ale to nie naprawiło. Czy kiedykolwiek znalazłeś rozwiązanie? –

+0

Myślę, że to błąd. Muszę używać Windows 7, 8 do programowania, ale zawsze najpierw zainstaluj powłokę Git Bash Shell, aby uniknąć owej niezgrabnej powłoki cmd DOS i uzyskać mój grep, znaleźć polecenia, aliasy itp. Zamierzam spróbować wygenerować venv na Linuksie i zarchiwizuj aktywne/dezaktywuj do późniejszego wklejenia do systemów opartych na systemie Windows. –

Odpowiedz

2

To jest (obecnie) w zależności od projektu.

W systemie Windows instalowane są tylko skrypty Command Prompt (.bat) i PowerShell (.ps1). The venv documentation mówi "Inwokacja skryptu jest specyficzna dla platformy" - zobacz tabelę w tym dokumencie wymieniającą polecenia, aby aktywować venv na różnych platformach. Jeśli spojrzysz na kod źródłowy venv, zobaczysz, że rozróżnia on środowiska Windows i POSIX i odpowiednio instaluje skrypty.

Istnieje jednak open bug, który żąda zainstalowania skryptów dla innych powłok. Oczekując na rozwiązanie, można obejść: można pobrać skrypt bash (lub inny shell) z komputera lokalnego lub z wersji cPython hg repository (direct link to the file) i umieścić go w folderze Skrypty obok okien specyficznych dla systemu Windows . Musisz zmienić __VENV_DIR__ w katalogu, w którym znajduje się twój venv, __VENV_BIN_NAME__ na "bin" i __VENV_PROMPT__ na to, co chcesz, aby zachęta basha była wyświetlana po aktywowaniu venv (na przykład "(env)"). Ustaw uprawnienia i powinieneś być dobry.

+0

Ten plik 'activate' nie działa, ponieważ zawiera symbole zastępcze, które są przypuszczalnie zapełnione przez skrypt python – Eric

3

Nie trzeba się martwić o obecności wirtualnej env skryptu bash iść do Git bash i używać . Scripts/activate lub source Scripts/activate jak wspomniano w odpowiedzi w tym temacie Can not activate a virtualenv in GIT bash mingw32 for Windows

+0

Otrzymasz błąd" Brak takiego pliku lub katalogu ", ponieważ istnieje tylko plik activ.bat i Activate.ps1, które nie działają. – nme

1

Poniższy kod wyjaśnić jak skonfigurować i rozpocząć virtualenv nazwie env_project wewnątrz folderu o nazwie projektu w Git Bash:

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

Czy to jest nowe/ostatnie dodanie funkcji? –

0

ten pracował dla mnie: . aktywuj