PowerShell 中的虚拟环境?

2025-04-16 08:57:00
admin
原创
14
摘要:问题描述:在 PowerShell 中使用virtualenv时似乎存在问题。当我尝试在 PowerShell 中激活我的环境时...env/scripts/activate ..什么也没有发生。(shell提示符和PATH环境变量都应该改变。)我猜问题在于 PowerShell 生成了一个新的 cmd。进程...

问题描述:

在 PowerShell 中使用virtualenv时似乎存在问题。

当我尝试在 PowerShell 中激活我的环境时...

env/scripts/activate

..什么也没有发生。(shell提示符和PATH环境变量都应该改变。)

我猜问题在于 PowerShell 生成了一个新的 cmd。进程只是为了运行 activate.bat,因此activate.bat在完成后对 shell 所做的更改就失效了。

您对这个问题有什么解决方法吗?(我cmd.exe目前坚持使用这个方法)


解决方案 1:

最新版本的 virtualenv支持开箱即用的 PowerShell

只要确保你运行:

Scriptsactivate.ps1

而不是

Scriptsactivate

后者将执行activate.bat,但这在 PowerShell 上不起作用。

解决方案 2:

我原来的答案现在已经过时了。现在,只需使用activate.ps1(而不是activate.bat) 从 Powershell 环境激活即可。


原始答案:

这篇文章包含一个 Powershell 脚本,该脚本允许您运行批处理文件并持久修改其环境变量。该脚本会将任何环境变量的更改传播回调用 PowerShell 的环境。

解决方案 3:

运行此命令:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force

其次是:

./env/Scripts/activate.ps1

就这样

解决方案 4:

一个快速的解决方法是调用 cmd,然后在 cmd 会话中运行 activate.bat。例如:

PS C:my_cool_envScripts> cmd
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:my_cool_envScripts>activate.bat
(my_cool_env) C:my_cool_envScripts>

解决方案 5:

在虚拟环境文件夹的 Scripts 目录中,有多个激活脚本可供使用,具体取决于执行命令的位置。如果您尝试从 Windows PowerShell 激活虚拟环境,请尝试使用以下命令:

. .envScriptsactivate.ps1

如果您收到有关系统上激活脚本被禁用的错误,您首先需要在系统上调用执行策略更改。此操作需要以管理员身份执行。

要做到这一点:

1)右键单击 PowerShell 应用程序并选择以管理员身份运行

2)运行以下命令:Set-ExecutionPolicy Unrestricted

3)重新运行激活命令:. .envScriptsactivate.ps1

解决方案 6:

无法加载 env\Scripts\Activate.ps1,因为此系统上已禁用脚本执行。

Set-Execution Policy 可用于允许当前用户运行脚本,如下所示。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

跑步之后...

env/Scripts/Activate.ps1

解决方案 7:

试试这个:
. .envScriptsactivate.ps1
观察点和空格

解决方案 8:

此错误是由于一项安全措施导致的,该措施不允许未经您批准的脚本在您的系统上执行。您可以打开具有管理员权限的 Powershell(在主菜单中搜索 Powershell,然后从上下文菜单中选择“以管理员身份运行”)并输入以下内容来执行此操作:

设置远程签名执行策略

更多信息请访问:
http://www.faqforge.com/windows/windows-powershell-running-scripts-is-disabled-on-this-system/

解决方案 9:

Windows 用户

在 Powershell 中:

  1. 以管理员身份运行 Powershell

  2. 复制并粘贴此命令:set-executionpolicy remotesigned

  3. 同意该消息。

最后,运行

your_virtualenv_nameScriptsactivate.ps1

而不是

your_virtualenv_nameScriptsactivate.bat

在 CMD 中运行:

your_virtualenv_nameScriptsactivate.bat

解决方案 10:

在 Windows PowerShell 上,我必须从 venv/Scripts 文件夹中输入:

. ./activate

解决方案 11:

首先,请确保您有权运行脚本。如果没有,请激活它。现在打开 powershell pip install virtualenv(如果您的系统中未安装 virtualenv)python -m virtualenv myenv(此处“myenv”是您的环境名称)

激活您创建的虚拟环境:myenv/Scripts/Activate.ps1

停用虚拟环境:停用

解决方案 12:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

当您尝试在 PowerShell 中激活虚拟环境(例如envScriptsActivate)时,PowerShell 会根据 来检查是否允许脚本执行set-ExecutionPolicy。如果此策略限制过多(例如Restricted),则会阻止激活脚本运行。通过设置RemoteSigned范围CurrentUser,您可以允许activate.ps1虚拟环境的脚本在 PowerShell 会话中正常运行,而无需提升权限。

解决方案 13:

我也遇到过这个问题!最后发现我们应该在 Windows 中做什么……

好的,请按照以下步骤操作:

1)在 Windows 的搜索栏中输入 powershell,然后右键单击它并选择以管理员身份运行

(如果您有问题请检查此处)

2)在 powershell 中运行以下命令:Set-ExecutionPolicy Unrestricted

3)重新运行激活命令:.\envScriptsactivate.ps1

(只需运行确切的命令!请注意环境的名称。)

就是这样!:)

解决方案 14:

还有 2 个建议:

因为削弱安全策略总是有问题的,所以我建议使用 Powershell 的最小化方法:不要以管理员身份,而是以想要使用虚拟环境功能的用户身份调用 Powershell。输入“set-executionpolicy -executionpolicy unrestricted -scope currentuser”。这样,策略只会针对单个用户进行更改,而不会影响整台机器。

其次,我建议从 GitHub 下载“regisf/virtualenvwrapper-powershell”源码。下载后,将 zip 文件解压到本地目录,并运行其中的“Install.ps1”文件。这将永久扩展 Powershell 配置文件,从而启用所有“virtalenvwrapper-win”命令,包括“workon”。之后,您将不会注意到 Powershell 和 Commandshell 在虚拟环境中的行为有任何差异。

解决方案 15:

Windows Power Shell 被认为比普通的命令提示符 Shell 功能强大且“涡轮增压”。例如,如果您正在使用 Visual Studio Code (VScode),运行 Power Shell 启动 Python 虚拟环境可能会抛出错误,尤其是在 Windows 10 上,如下所示。

\Activate:无法加载文件 C:/users\titus\django1\Scripts\Activate.ps1,因为此系统已禁用运行脚本。有关更多信息,请参阅 about_Execution_Policies,网址为 https:/go.microsoft.com/fwlink/?LinkID=135170。位于第 1 行,字符数为 1

要解决此问题,您可以执行以下操作:

  1. 进入 Windows 设置

  2. 打开更新和安全

  3. 选择“面向开发人员”

  4. 启用开发者模式

  5. 接受所有条款

谢谢大家

解决方案 16:

我编写了这个简短的小脚本来处理开发服务器的激活和启动。

$ep = Get-ExecutionPolicy

if ($ep -eq 'RemoteSigned') {

    $root = "C:UsersALevenOneDrive!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_venvScriptsActivate.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"

}

享受。

解决方案 17:

我写了一个小脚本来激活它。

# Don't forget to change execution policies
# Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
# More info https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7

if (Test-Path env:VIRTUAL_ENV) {
    deactivate  
}

$env = .envScriptsactivate.ps1

# use $env to set variables, for instance $env:FLASK_APP = "main.py"

记得使用 PowerShell 扩展保存文件.ps1

解决方案 18:

对于仍在努力尝试的人,Windows PowerShell 默认不会从当前位置加载命令。如果您使用 cd 命令进入 activate.ps1 的位置,运行activate.ps1可能会返回“术语‘activate’未被识别为 cmdlet 的名称”。

为了从当前位置运行 activate.ps1,请尝试:

.activate.ps1

解决方案 19:

我在任何 PowerShell 中都遇到了这个问题,最后我只是输入了带有 . 前缀的激活命令。你可以用黄色字体看到我的最终出路

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用