[Python-checkins] bpo-38972: Link to instructions to change PowerShell execution policy (GH-19131)
Miss Islington (bot)
webhook-mailer at python.org
Thu Apr 2 15:19:47 EDT 2020
https://github.com/python/cpython/commit/b7345c24a4d962e2adbafc86e4af77de9e3ef09e
commit: b7345c24a4d962e2adbafc86e4af77de9e3ef09e
branch: 3.8
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2020-04-02T12:19:41-07:00
summary:
bpo-38972: Link to instructions to change PowerShell execution policy (GH-19131)
(cherry picked from commit 45217af29c7f380089af17beb48a5ea0560bbb9d)
Co-authored-by: Derek Keeler <d3r3kk at users.noreply.github.com>
files:
M Doc/using/venv-create.inc
M Lib/venv/scripts/common/Activate.ps1
diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc
index 1b24721bbcbc3..99b2a19a18d06 100644
--- a/Doc/using/venv-create.inc
+++ b/Doc/using/venv-create.inc
@@ -78,6 +78,17 @@ The command, if run with ``-h``, will show the available options::
particular note is that double-clicking ``python.exe`` in File Explorer
will resolve the symlink eagerly and ignore the virtual environment.
+.. note::
+ On Microsoft Windows, it may be required to enable the ``Activate.ps1``
+ script by setting the execution policy for the user. You can do this by
+ issuing the following PowerShell command:
+
+ PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
+
+ See `About Execution Policies
+ <ttps:/go.microsoft.com/fwlink/?LinkID=135170>`_
+ for more information.
+
The created ``pyvenv.cfg`` file also includes the
``include-system-site-packages`` key, set to ``true`` if ``venv`` is
run with the ``--system-site-packages`` option, ``false`` otherwise.
diff --git a/Lib/venv/scripts/common/Activate.ps1 b/Lib/venv/scripts/common/Activate.ps1
index 98cb1b85d11c6..b8245b1bbe5c8 100644
--- a/Lib/venv/scripts/common/Activate.ps1
+++ b/Lib/venv/scripts/common/Activate.ps1
@@ -1,6 +1,6 @@
<#
.Synopsis
-Activate a Python virtual environment for the current Powershell session.
+Activate a Python virtual environment for the current PowerShell session.
.Description
Pushes the python executable for a virtual environment to the front of the
@@ -37,6 +37,15 @@ Activates the Python virtual environment that contains the Activate.ps1 script,
and prefixes the current prompt with the specified string (surrounded in
parentheses) while the virtual environment is active.
+.Notes
+On Windows, it may be required to enable this Activate.ps1 script by setting the
+execution policy for the user. You can do this by issuing the following PowerShell
+command:
+
+PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
+
+For more information on Execution Policies:
+ttps:/go.microsoft.com/fwlink/?LinkID=135170
#>
Param(
@@ -137,7 +146,7 @@ function Get-PyVenvConfig(
$val = $keyval[1]
# Remove extraneous quotations around a string value.
- if ("'""".Contains($val.Substring(0,1))) {
+ if ("'""".Contains($val.Substring(0, 1))) {
$val = $val.Substring(1, $val.Length - 2)
}
@@ -165,7 +174,8 @@ Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
# VenvExecDir if specified on the command line.
if ($VenvDir) {
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
-} else {
+}
+else {
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
Write-Verbose "VenvDir=$VenvDir"
@@ -179,7 +189,8 @@ $pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
# just use the name of the virtual environment folder.
if ($Prompt) {
Write-Verbose "Prompt specified as argument, using '$Prompt'"
-} else {
+}
+else {
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
More information about the Python-checkins
mailing list