情景
我现在在部署一个python 项目,需要用到Python 3.10。但是我本地已经有了一个3.12解释器,有没有一种方法,可以管理python 环境,还可以随意切换。怎么做?
window 安装pyenv-win
使用 PowerShell(以管理员身份运行)安装 pyenv-win。执行以下命令:
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
- 如果发生报错
PS C:\Users\sexgirls> Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
& : 无法加载文件 C:\Users\sexgirls\install-pyenv-win.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.mi
crosoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 173
+ ... n.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : SecurityError: (:) [],PSSecurityException+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\Users\sexgirls>
- 解决
这个错误是因为 Windows PowerShell 默认的安全策略禁止运行脚本。让我们先解决这个问题。
下一步具体操作是:
-
以管理员身份打开 PowerShell(右键点击 PowerShell,选择"以管理员身份运行")
-
执行以下命令来修改 PowerShell 的执行策略:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
当系统提示确认时,输入 “Y” 并按回车确认。
- 执行完这个命令后,请重新运行之前的安装命令
- 出现如图红框,表示安装成功。
下一步是查看可供安装的 Python 版本列表,这里我以 Python 3.10 安装为例子,特别是找到 Python 3.10 的具体版本号。执行以下命令:
pyenv install --list | findstr "3.10"
这样可以帮我们快速找到所有可用的 Python 3.10.x 版本。
下一步执行以下命令来安装 Python 3.10.11:
pyenv install 3.10.11
- 如果出现下载过慢的情况, 有代理的可以设置代理。
下一步操作是设置代理,在 PowerShell 中执行以下命令:
$env:HTTP_PROXY="http://127.0.0.1:7890"
$env:HTTPS_PROXY="http://127.0.0.1:7890"
设置完代理后,重新执行安装命令:
pyenv install 3.10.11
这样就安装好了
下一步是将 3.10.11 设置为当前项目使用的 Python 版本。执行以下命令:
pyenv global 3.10.11
然后验证一下是否切换成功,执行:
python --version
请执行这两个命令,并告诉我显示的 Python 版本是否正确(应该显示 Python 3.10.11)。这样我们就能确认环境切换是否成功。
- 要查看已安装的 Python 版本列表,执行以下命令:
pyenv versions
这个命令会显示所有已安装的 Python 版本,并且会在当前使用的版本前面标记一个星号(*)。