mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 d64ee1a5ba
			
		
	
	
		d64ee1a5ba
		
	
	
	
	
		
			
			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.
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| 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) {
 | |
|         copy-item function:_OLD_VIRTUAL_PROMPT function:prompt
 | |
|         remove-item function:_OLD_VIRTUAL_PROMPT
 | |
|     }
 | |
| 
 | |
|     if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) {
 | |
|         copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME
 | |
|         remove-item env:_OLD_VIRTUAL_PYTHONHOME
 | |
|     }
 | |
| 
 | |
|     if (Test-Path env:_OLD_VIRTUAL_PATH) {
 | |
|         copy-item env:_OLD_VIRTUAL_PATH env:PATH
 | |
|         remove-item env:_OLD_VIRTUAL_PATH
 | |
|     }
 | |
| 
 | |
|     if (Test-Path env:VIRTUAL_ENV) {
 | |
|         remove-item env:VIRTUAL_ENV
 | |
|     }
 | |
| 
 | |
|     if (!$NonDestructive) {
 | |
|         # Self destruct!
 | |
|         remove-item function:deactivate
 | |
|     }
 | |
| }
 | |
| 
 | |
| deactivate -nondestructive
 | |
| 
 | |
| $env:VIRTUAL_ENV="__VENV_DIR__"
 | |
| 
 | |
| if (! $env:VIRTUAL_ENV_DISABLE_PROMPT) {
 | |
|     # Set the prompt to include the env name
 | |
|     # Make sure _OLD_VIRTUAL_PROMPT is global
 | |
|     function global:_OLD_VIRTUAL_PROMPT {""}
 | |
|     copy-item function:prompt function:_OLD_VIRTUAL_PROMPT
 | |
|     function global:prompt {
 | |
|         Write-Host -NoNewline -ForegroundColor Green '__VENV_PROMPT__'
 | |
|         _OLD_VIRTUAL_PROMPT
 | |
|     }
 | |
| }
 | |
| 
 | |
| # Clear PYTHONHOME
 | |
| if (Test-Path env:PYTHONHOME) {
 | |
|     copy-item env:PYTHONHOME env:_OLD_VIRTUAL_PYTHONHOME
 | |
|     remove-item env:PYTHONHOME
 | |
| }
 | |
| 
 | |
| # Add the venv to the PATH
 | |
| copy-item env:PATH env:_OLD_VIRTUAL_PATH
 | |
| $env:PATH = add-bin $env:PATH
 |