李守中

Python 3.x 在 Windows 上的多版本共存

Table of Contents

1. 基本配置

安装 Python 之后会顺带安装一个 python launcher

C:\Program Files\python37 和 C:\Program Files\python38 是两个 Python 的安装目录。

执行 python -V 的输出取决于环境变量的顺序。

执行 py -3.7py -3.8 可以指定 Python 版本。

执行 py -3.7 -m 可以把 Python 的库模块当作脚本来执行,比如:

  • py -3.7 -m pip install virtualenv 用 pip 安装 virtualenv
  • py -3.7 -m virtualenv --python=3.8 <virtual_env_name> 创建虚拟环境

注意:

  1. 安装完 virtualenv 之后不能在 PowerShell 里面直接使用 virualenv 命令。
  2. 想要直接使用命令需要添加环境变量 C:\Users\mgz\AppData\Roaming\Python\Python37\ScriptsPath
  3. 添加完环境变量后,virtualenv 基于的 Python 版本取决于 Python 安装目录在环境变量里的顺序。

C:\Users\mgz\AppData\Roaming\Python\Python37\Scripts 和 C:\Users\mgz\AppData\Roaming\Python\Python37\Scripts 是 Python 包启动脚本的所在目录。

2. 踩坑记录

2.1. PowerShell 默认不允许执行 *.ps1 脚本文件

需要更改 PowerShell 的执行策略 Set-ExecutionPolicy RemoteSigned

Set-ExecutionPolicy <Policy><Policy> 的有效参数:

  • Restricted: 是默认选项。不载入任何配置文件,不运行任何脚本。
  • AllSigned: 只有被 Trusted publisher 签名的脚本或者配置文件才能使用,包括在本地写的脚本。
  • RemoteSigned: 对于从网络上下载的脚本或者配置文件,只有被 Trusted publisher 签名的才能使用。
  • Unrestricted: 可以载入所有配置文件,可以运行所有脚本文件. 如果运行一个从网络下载并且没有签名的脚本,在运行之前,会被提示需要一定的权限。
  • Bypass: 所有东西都可以使用,并且没有提示和警告。
  • Undefined: 删除当前 scope 被赋予的 ExecutionPolicy,但是 Group Policy scope 的 Execution Policy 不会被删除。


Last Update: 2023-08-13 Sun 14:19

Generated by: Emacs 28.2 (Org mode 9.5.5)   Contact: [email protected]

若正文中无特殊说明,本站内容遵循: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议