Не удается активировать виртуальную среду в GIT bash mingw32 для Windows

Когда я пытаюсь активировать свой virtualenv из GIT bash mingw32, я не получаю ожидаемого ответа.

ПРИМЕЧАНИЕ. py — это папка для проектов Python в моей папке на Google Диске. hy — это папка virtualenv, созданная при запуске virtualenv --distribute hy.

s3z@s3z ~/Google Drive/py/hy
$ Scripts/activate

Итак, вы видите, что перед s3z@s3z ~/Google Drive/py/hy нет ожидаемого (hy).

s3z@s3z ~/Google Drive/py/hy
$ Scripts/activate.bat
Scripts/activate.bat: line 1: @echo: command not found
Scripts/activate.bat: line 4: syntax error near unexpected token `('
Scripts/activate.bat: line 4: `if not defined PROMPT ('

И при нацеливании на фактическое имя файла activate.bat я получаю сообщения об ошибках. Затем я пытаюсь деактивировать, чтобы посмотреть, что произойдет, потому что я подумал, что, возможно, virtualenv был активирован, но скрыт.

s3z@s3z ~/Google Drive/py/hy
$ Scripts/deactivate.bat
Scripts/deactivate.bat: line 1: @echo: command not found
Scripts/deactivate.bat: line 3: syntax error near unexpected token `('
Scripts/deactivate.bat: line 3: `if defined _OLD_VIRTUAL_PROMPT ('

s3z@s3z ~/Google Drive/py/hy
$ Scripts/deactivate
sh.exe": Scripts/deactivate: No such file or directory

Любые идеи?


person Community    schedule 04.05.2012    source источник


Ответы (5)


Выполнение Scripts/activate запускает сценарий в новом экземпляре оболочки, который уничтожается после выполнения сценария. Чтобы запустить скрипт в вашей текущей оболочке, используйте либо . Scripts/activate, либо source Scripts/activate.

Scripts/activate.bat здесь не работает, потому что он написан на Batch, языке Windows cmd.exe, а не на Bash.

person Pierre Bourdon    schedule 04.05.2012
comment
Это доступно только на virtualenv 1.7.1 и выше. - person A-IV; 12.05.2012
comment
Вам нужно установить virtualenv отдельно, чтобы это работало. Встроенная в Python 3 команда python -m venv не будет создавать тот же сценарий activate. - person BenjaminGolder; 17.01.2017
comment
Есть ли способ добавить это к пути терминала Pycharm, чтобы автоматически вызывать его? - person Andy Poquette; 10.05.2017
comment
Существует обходной путь, который я нашел на github.com/DjangoGirls/tutorial/issues. / и bugs.python.org/issue22343. В основном скопируйте C:\Python35\Lib\venv\scripts\posix\activate в папку C:\Python35\Lib\venv\scripts\nt\ перед использованием. - person Abid H. Mujtaba; 05.10.2018

В Windows10 вы можете перейти в каталог вашего virtualenv, где находится папка Scripts, а затем ввести следующую команду

source ./Scripts/activate

Обратите внимание на .(точку) без этого, когда я использую его, как упоминалось выше, он выдавал мне ошибку, тогда решение, предоставленное Пьером, сработало для меня.

person Aman Tandon    schedule 08.10.2018

Как активировать и деактивировать venv с помощью Git Bash


Чтобы получить доступ к вашему python в Windows 10, вам нужно добавить .exe при создании виртуальной среды.

$ python.exe -m venv Scripts

Затем вы можете перейти в папку Scripts, которую вы создали для виртуальной среды.

$ cd Scripts/

Теперь вам нужно вызвать его, чтобы активировать виртуальную среду.

$ source ./Scripts/activate

Когда вы закончите, вы просто деактивируете виртуальную среду.

$ deactivate

Скриншот, как активировать/деактивировать Git Bash venv


person Nathan Weiler    schedule 18.04.2020
comment
Хотя этот код может решить проблему, включая объяснение того, как и почему это решает проблему, действительно поможет улучшить качество. вашего сообщения и, вероятно, приведет к большему количеству голосов. Помните, что вы отвечаете на вопрос для будущих читателей, а не только для того, кто задает сейчас. Пожалуйста, отредактируйте свой ответ, чтобы добавить пояснения и указать, какие ограничения и предположения применяются. - person Brian; 18.04.2020
comment
Я внес изменения, которые вы предложили, чтобы они были более наглядными для зрителей. - person Nathan Weiler; 22.04.2020

Просто выполните . Scripts/activate в папке виртуальной среды введите здесь описание изображения

person siaka karl    schedule 15.05.2019

Я знаю, что здесь уже есть ответ, но я подумал, что могу опубликовать свое решение для тех, кто придет к этому сообщению намного позже, как я. После установки python 3.8.2 и выбора пути добавления python к диску c при начальной установке выполните следующие действия...

  1. Установите virtualenv с помощью pip install virtualenv, а затем протестируйте.

  2. Перейдите в папку вашего проекта, введите pip freeze, это покажет все установленные пакеты, которые могут не понадобиться для нового проекта.

  3. Введите python -m venv ./venv, а затем cd venv,

  4. Введите . Scripts/activate. Теперь вы должны увидеть (venv) — это имя, которое вы дали на шаге 3.

  5. cd .. вернитесь в корень папки вашего проекта и введите pip freeze, чтобы проверить эту виртуальную среду, если она свободна для нового проекта.

(venv) user@DESKTOP MINGW64 ~/Documents/yourproject

person Azmol    schedule 19.04.2020