bpo-32718: Make Activate.ps1 for venv cross-platform and available on all platforms (GH-9321)
PowerShell Core 6.1 is the cross-platform port of Windows PowerShell. This change updates Activate.ps1 to not make Windows assumptions as well as installing it into the bin/Scripts directory on all operating systems. Requires PowerShell Core 6.1 for proper readline support once the shell has been activated for the virtual environment.
This commit is contained in:
parent
db1a80e97a
commit
d64ee1a5ba
|
@ -136,6 +136,13 @@ pathlib
|
|||
contain characters unrepresentable at the OS level.
|
||||
(Contributed by Serhiy Storchaka in :issue:`33721`.)
|
||||
|
||||
venv
|
||||
----
|
||||
|
||||
* :mod:`venv` now includes an ``Activate.ps1`` script on all platforms for
|
||||
activating virtual environments under PowerShell Core 6.1.
|
||||
(Contributed by Brett Cannon in :issue:`32718`.)
|
||||
|
||||
|
||||
Optimizations
|
||||
=============
|
||||
|
@ -321,7 +328,7 @@ CPython bytecode changes
|
|||
|
||||
* The interpreter loop has been simplified by moving the logic of unrolling
|
||||
the stack of blocks into the compiler. The compiler emits now explicit
|
||||
instructions for adjusting the stack of values and calling the cleaning
|
||||
instructions for adjusting the stack of values and calling the cleaning-
|
||||
up code for :keyword:`break`, :keyword:`continue` and :keyword:`return`.
|
||||
|
||||
Removed opcodes :opcode:`BREAK_LOOP`, :opcode:`CONTINUE_LOOP`,
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
function Script:add-bin([string]$envPath) {
|
||||
$binPath = Join-Path -Path $env:VIRTUAL_ENV -ChildPath '__VENV_BIN_NAME__'
|
||||
return ($binPath, $envPath) -join [IO.Path]::PathSeparator
|
||||
}
|
||||
|
||||
function global:deactivate ([switch]$NonDestructive) {
|
||||
# Revert to original values
|
||||
if (Test-Path function:_OLD_VIRTUAL_PROMPT) {
|
||||
|
@ -48,4 +53,4 @@ if (Test-Path env:PYTHONHOME) {
|
|||
|
||||
# Add the venv to the PATH
|
||||
copy-item env:PATH env:_OLD_VIRTUAL_PATH
|
||||
$env:PATH = "$env:VIRTUAL_ENV\__VENV_BIN_NAME__;$env:PATH"
|
||||
$env:PATH = add-bin $env:PATH
|
|
@ -0,0 +1,2 @@
|
|||
The Activate.ps1 script from venv works with PowerShell Core 6.1 and is now
|
||||
available under all operating systems.
|
Loading…
Reference in New Issue