Ответ 1
Здесь сообщение, в котором содержится Powershell script, который позволяет вам запускать пакетные файлы, которые постоянно изменяют свои переменные среды. script передает любую переменную окружения обратно в вызывающую среду PowerShell.
Привет, друзья pythonistas, кажется, существует проблема, когда virtualenv используется в PowerShell.
Когда я пытаюсь активировать свою среду в PowerShell, например..
> окр/скрипты/активировать
.. ничего не происходит. (приглашение оболочки должно быть изменено, а также переменная env. PATH.)
Я думаю, проблема в том, что PowerShell создает новый cmd. процесс просто для запуска active.bat, таким образом создавая изменения, активирует.бат делает оболочку мертвой после ее завершения.
У вас есть обходные пути для решения проблемы? (Я сейчас придерживаюсь cmd.exe)
Здесь сообщение, в котором содержится Powershell script, который позволяет вам запускать пакетные файлы, которые постоянно изменяют свои переменные среды. script передает любую переменную окружения обратно в вызывающую среду PowerShell.
Последняя версия virtualenv поддерживает PowerShell вне коробки.
Просто убедитесь, что вы запустили:
Scripts\activate.ps1
вместо
Scripts\activate
Последний выполнит activate.bat
, который не работает в PowerShell.
Быстрая работа будет заключаться в вызове 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>
Эта ошибка возникает из-за меры безопасности, которая не позволит сценариям выполняться в вашей системе, не одобрив их. Вы можете сделать это, открыв powershell с правами администратора (выполните поиск powershell в главном меню и выберите "Запуск от имени администратора" в контекстном меню) и введите:
set-executionpolicy remotesigned
для более: http://www.faqforge.com/windows/windows-powershell-running-scripts-is-disabled-on-this-system/
попробуйте следующее:
. .\env\Scripts\activate.ps1
смотреть точки и пробелы
Я написал этот маленький маленький 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.