summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Keeler <d3r3kk@users.noreply.github.com>2020-04-02 19:00:21 (GMT)
committerGitHub <noreply@github.com>2020-04-02 19:00:21 (GMT)
commit45217af29c7f380089af17beb48a5ea0560bbb9d (patch)
tree7ecd36d9c56655462f578ade4dd815b7328b7258
parent7a6f3bcc43ed729f8038524528c0b326b5610506 (diff)
downloadcpython-45217af29c7f380089af17beb48a5ea0560bbb9d.zip
cpython-45217af29c7f380089af17beb48a5ea0560bbb9d.tar.gz
cpython-45217af29c7f380089af17beb48a5ea0560bbb9d.tar.bz2
bpo-38972: Link to instructions to change PowerShell execution policy (GH-19131)
-rw-r--r--Doc/using/venv-create.inc11
-rw-r--r--Lib/venv/scripts/common/Activate.ps119
2 files changed, 26 insertions, 4 deletions
diff --git a/Doc/using/venv-create.inc b/Doc/using/venv-create.inc
index 6c6617d..c39048d 100644
--- a/Doc/using/venv-create.inc
+++ b/Doc/using/venv-create.inc
@@ -83,6 +83,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 98cb1b8..b8245b1 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'])'"