Pyenvwinwindows下管理python版本利器

2023年 9月 21日 72.6k 0

最近发现python也有与node的nvm类似的版本管理工具,特在此给大家分享一下如何使用。

安装

查阅官方文档 pyenv-win

方法一

根据官方文档的命令:Invoke-WebRequest -UseBasicParsing -Uri "raw.githubusercontent.com/pyenv-win/p… -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

直接执行该命令可能会出现错误。我们可以使用下面的方法:

  • 进入[https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1](https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1") ,将名为install-pyenv-win.ps1的文件下载至电脑某目录(如D:pyenv)
  • 将脚本文件下载完成后,在终端(PowerShell) 中,使用cd命令切换到保存该脚本文件的目录,然后运行以下命令来执行脚本
./install-pyenv-win.ps1
  • 执行完成后,运行下面的命令确认是否安装成功:
pyenv --version

显示以下画面,说明安装成功:

方法二

 git clone https://github.com/pyenv-win/pyenv-win.git
 # 或者直接下载
 https://github.com/pyenv-win/pyenv-win/archive/refs/heads/master.zip
 

路径可自定义。例如 D:pyenv.pyenv

配置环境变量

使用方法二安装时,需要我们自行配置环境变量。

pyenv添加到系统的环境变量

  • 建立环境变量名:PYENV,变量值为D:pyenv.pyenvpyenv-win
  • 添加以下两项至Path:
    • %PYENV%bin
    • %PYENV%shims
  • 设置好之后,测试pyenv是否安装并配置成功

需要将当前终端关闭并重新打开再进行测试

使用前准备工作

设置下载镜像

由于默认的pyenv使用的下载镜像(mirror)下载时很容易超时导致下载失败或下载很慢。

为了解决这个问题,这里我们更换一个更快的下载镜像。

修改pyenv-winlibexeclibs目录下(特别提示,对早期pyenv-win是在pyenv-winlibexec目录下)的pyenv-install-lib.vbs文件中的镜像配置mirror="https://www.python.org/ftp/python"修改为

mirror="https://npm.taobao.org/mirrors/python/",令其在下载Python版本时默认从淘宝镜像中下载。

常用命令

查看可安装的Python的版本列表

pyenv install --list
# 或
pyenv install --l

pyenv install--安装Python

查看可安装的版本后,接着可以输入pyenv install 来下载需要的Python版本。例如想要下载3.8.10版本的话可以输入:

pyenv install 3.8.10

pyenv global --设置全局的Python版本

  • 我们可以通过输入pyenv global 3.8.10设置全局的Python版本为3.8.10
  • 设置后输入pyenv global确认当前设置的Python版本是否为3.8.10
  • 另外在设置全局Python版本后,D:/pyenv/.pyenv/pyenv-win目录下有一个名为verision的文件,打开它就可以查看全局的Python版本

pyenv local --设置当前目录下的Python版本

  • 如果使用Python开发项目(比如Django),这时因为项目使用的库版本各不相同,这时我们要在单个项目中使用特定的Python版本进行开发,这个命令实现的效果是类似于venv的功能。
  • 我们可以输入pyenv local 3.8.10设置当前目录下所有Python文件使用的Python版本。
  • 与查看全局版本类似,我们同样可以输入pyenv local确认当前设置的Python版本;也可以在当前目录下找到一个生成的.python-version文件来查看当前版本

pyenv versions--显示已经安装的Python版本

通过输入pyenv versions可以输出已经下载的所有Python环境:

$ pyenv versions
  3.10.10
* 3.8.10 (set by D:cerelise-workspacecoursedrf-chat-courseserver.python-version)
  • pyenv version会显示当前localglobal所使用的Python版本,括号内容为Python的来源位置;
  • 若输入pyenv version则只会显示当前使用的Python版本,而且本地会优先于全局版本。

pyenv uninstall --解除安装指定的Python版本

假设要删除Python3.8.10的话,只需要输入pyenv uninstall 3.8.10,pyenv就会删除D:/pyenv/.pyenv/pyenv-win/versions/3.8.10

配置pip国内镜像

国内常用镜像

  • 清华:pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云:mirrors.aliyun.com/pypi/simple…
  • 中国科技大学 pypi.mirrors.ustc.edu.cn/simple/
  • 华中理工大学:pypi.hustunique.com/
  • 山东理工大学:pypi.sdutlinux.org/
  • 豆瓣:pypi.douban.com/simple/

配置

# 全局范围内设置 pip 的镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 只想对当前用户设置镜像源
pip config set index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 临时安装时配置
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

在不同的Python版本下,切换为国内镜像源都需要更新一次,不同Python版本下的pip并不一致。

常见问题

如果我要使用pyenv,但是本地有已经安装好的Python怎么办?

  • 安装pyenv后,如果本机上有Python环境的话,无论怎么切换版本,系统都是默认使用本机上使用安装包安装的Python环境版本;

  • 如何解决这个问题?

    • 卸载当前的Python环境;
    • 在Path配置中删除本机Python的环境变量。
  • 以上两项完成后,重新打开终端,切换版本就可以了。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论