Подтвердить что ты не робот

Virtualenv в PowerShell?

Привет, друзья pythonistas, кажется, существует проблема, когда virtualenv используется в PowerShell.

Когда я пытаюсь активировать свою среду в PowerShell, например..

> окр/скрипты/активировать

.. ничего не происходит. (приглашение оболочки должно быть изменено, а также переменная env. PATH.)

Я думаю, проблема в том, что PowerShell создает новый cmd. процесс просто для запуска active.bat, таким образом создавая изменения, активирует.бат делает оболочку мертвой после ее завершения.

У вас есть обходные пути для решения проблемы? (Я сейчас придерживаюсь cmd.exe)

4b9b3361

Ответ 1

Здесь сообщение, в котором содержится Powershell script, который позволяет вам запускать пакетные файлы, которые постоянно изменяют свои переменные среды. script передает любую переменную окружения обратно в вызывающую среду PowerShell.

Ответ 2

Последняя версия virtualenv поддерживает PowerShell вне коробки.

Просто убедитесь, что вы запустили:

Scripts\activate.ps1

вместо

Scripts\activate

Последний выполнит activate.bat, который не работает в PowerShell.

Ответ 3

Быстрая работа будет заключаться в вызове cmd, а затем запустите ваш activ.bat из сеанса cmd. Например:

PS C:\my_cool_env\Scripts> cmd
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\my_cool_env\Scripts>activate.bat
(my_cool_env) C:\my_cool_env\Scripts>

Ответ 4

Эта ошибка возникает из-за меры безопасности, которая не позволит сценариям выполняться в вашей системе, не одобрив их. Вы можете сделать это, открыв powershell с правами администратора (выполните поиск powershell в главном меню и выберите "Запуск от имени администратора" в контекстном меню) и введите:

set-executionpolicy remotesigned

для более: http://www.faqforge.com/windows/windows-powershell-running-scripts-is-disabled-on-this-system/

Ответ 5

попробуйте следующее: . .\env\Scripts\activate.ps1 смотреть точки и пробелы

Ответ 6

Я написал этот маленький маленький script для обработки моей активации и запуска dev-сервера.

$ep = Get-ExecutionPolicy

if ($ep -eq 'RemoteSigned') {

    $root = "C:\Users\ALeven\OneDrive\!code_projects\!django_projects\"

    $test = Read-Host -Prompt 'Would you like to activate the python environment? y/n'
    if ($test -eq 'y') {

        $activatestr = ($root + "\work_venv\Scripts\Activate.ps1")
        & $activatestr

    }

    $test = Read-Host -Prompt 'Would you like to run the python server? y/n'

    if ($test -eq 'y') {

        $whichserver = Read-Host -Prompt 'Enter the name of the project.'
        $path = ($root + $whichserver)
        $runserverstr = ($path + "\manage.py")
        python.exe $runserverstr runserver

    }

} else {

    Write-host "Execution Policy does not allow this script to run properly"
    Write-host "If you have the proper permissions,"
    Write-Host "Please close powershell,"
    Write-host "then right click the powershell icon and run as administrator"
    Write-host "Once in the powershell environment, execute the following:"
    Write-host "Set-ExecutionPolicy RemoteSigned -Force"

}

Enjoy.