windows terminal 中运行 miniconda 和 pip 的虚拟环境
pip创建的虚拟环境
使用命令 python -m venv hf
创建虚拟环境后,在激活时,会遇到一个错误,原因是powershell启动了严格的审查脚本策略。
这个错误信息表明你尝试在 PowerShell 中运行一个脚本(具体是激活一个虚拟环境),但是你的系统设置阻止了未经签名的脚本的执行。PowerShell 有一个叫做“执行策略”(Execution Policy)的安全特性,用于控制是否可以运行脚本以及从哪里可以运行它们。
默认情况下,PowerShell 的执行策略可能是设为 Restricted
或 AllSigned
,这意味着只有经过数字签名的脚本才能运行,或者根本不能运行任何脚本。要解决这个问题,你需要更改执行策略以允许运行脚本。
警告: 更改执行策略可能会降低系统的安全性,因为它允许运行来自任何来源的脚本。确保只从你信任的来源运行脚本,并理解潜在的风险。
要更改执行策略,请按照以下步骤操作:
- 打开 PowerShell 作为管理员。
- 输入以下命令来查看当前的执行策略:
Get-ExecutionPolicy
- 如果输出显示
Restricted
或AllSigned
,则需要将其更改为RemoteSigned
或Unrestricted
(Unrestricted
是最宽松的设置,允许运行所有脚本)。输入以下命令之一来更改执行策略:
或者Set-ExecutionPolicy RemoteSigned
Set-ExecutionPolicy Unrestricted
- 系统将提示你确认更改,键入
Y
并按 Enter 键确认。 - 重新启动 PowerShell 或关闭并重新打开命令行界面,然后再次尝试运行你的脚本。
请注意,更改执行策略可能会影响系统安全,因此在生产环境中应谨慎操作。如果只是临时需要运行脚本,可以考虑使用 -ExecutionPolicy
参数直接在运行脚本时指定策略,例如:
powershell -ExecutionPolicy Bypass -File .\hf\Scripts\activate
但这同样会绕过正常的执行策略检查,应小心使用。
miniconda 虚拟环境在 ternimal 中运行
如果在安装的时候,选择把 conda 加入 PATH,否则,就要在 PATH 中添加 conda 的运行目录。
然后,打开 powershell ,运行 conda --version,查看是否可以正确显示。
如果正确显示,则运行 conda init powershell,这样就可以了。
解释 conda init 帮助信息
conda 初始化命令帮助信息
使用方法:
conda-script.py init
命令用于初始化 conda 以便于在 shell 中进行交互。
必需参数:
SHELLS
:一个或多个要初始化的 shell。如果不提供,则默认值为 Unix 上的 'bash' 和 Windows 上的 'cmd.exe' 与 'powershell'。使用--all
标志可以初始化所有可用的 shell。可选 shell 包括:['bash', 'cmd.exe', 'fish', 'powershell', 'tcsh', 'xonsh', 'zsh']。
选项:
-h, --help
:显示此帮助信息并退出。--all
:初始化所有当前可用的 shell。--anaconda-prompt
:在桌面上添加一个 'Anaconda Prompt' 图标。-d, --dry-run
:仅显示将要执行的操作,不实际执行。
配置类型:
--user
:为当前用户初始化 conda(默认)。--no-user
:不为当前用户初始化 conda。--system
:为系统上的所有用户初始化 conda。--reverse
:撤销上次 conda 初始化的效果。
输出、提示和流程控制选项:
--json
:将所有输出报告为 json。适用于程序化使用 conda。-v, --verbose
:可以多次使用。一次用于详细输出,两次用于 INFO 日志记录,三次用于 DEBUG 日志记录,四次用于 TRACE 日志记录。-q, --quiet
:不显示进度条。
关键说明:
conda 的关键功能需要它直接与调用 conda 的 shell 进行交互。conda activate
和 conda deactivate
命令特别地,是 shell 级别的命令。也就是说,它们影响了被交互的 shell 上下文的状态(例如,环境变量)。其他核心命令,如 conda create
和 conda install
,也必然与 shell 环境交互。它们因此以特定于每个 shell 的方式实现。每个 shell 必须进行配置以利用这些命令。
此命令会对你的系统进行特定且针对每个 shell 定制的更改。在进行更改前,使用 --dry-run
标志可以看到具体哪些文件和系统位置将受到影响。为了看到每个位置将进行的确切更改,使用 --verbose
标志。
重要提示:运行 conda init
后,大多数 shell 需要关闭并重新启动以使更改生效。这确保了 shell 能够识别和应用 conda 初始化带来的环境变量和其他配置变化。