pyenv-win 配置指南​

在 Python 开发过程中,经常会遇到需要使用不同版本 Python 的情况。比如,旧项目依赖某个特定的 Python 版本,而新项目则要求使用更新的版本。这时,版本管理工具就显得尤为重要。pyenv-win就是一款专门为 Windows 系统设计的 Python 版本管理工具,它能够让开发者在同一台机器上轻松安装、切换和管理多个 Python 版本。本文将详细介绍pyenv-win的配置方法以及可能遇到的问题和解决办法。​

安装前的准备工作​

  1. 安装 Git:pyenv-win依赖于 Git 进行安装和更新。如果你的系统尚未安装 Git,可以前往Git 官网下载安装包进行安装。安装过程中,按照默认设置即可,确保勾选将 Git 添加到系统路径的选项,以便在命令行中能够直接使用 Git 命令。​
  1. 安装 Python(可选):虽然pyenv-win可以管理多个 Python 版本,但首次安装pyenv-win时,系统中至少需要有一个 Python 版本。你可以从Python 官网下载并安装一个 Python 版本。安装时,务必勾选 “Add Python to PATH” 选项,这样系统才能正确识别 Python 命令。​

安装 pyenv-win​

方法一:使用 PowerShell 安装​

  1. 以管理员身份打开 PowerShell。在 Windows 搜索栏中输入 “PowerShell”,右键点击 “Windows PowerShell”,选择 “以管理员身份运行”。​
  1. 在 PowerShell 中运行以下命令,该命令会从 GitHub 下载并运行pyenv-win的安装脚本:​

TypeScript取消自动换行复制

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"​

  1. 可能遇到的问题及解决办法:​
  • 问题:运行上述命令时遇到 “未经授权的访问错误”。​
  • 解决办法:再次以管理员身份打开 PowerShell,运行命令Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine,该命令用于设置脚本执行策略,允许运行从互联网下载且经过数字签名的脚本。​
  • 问题:遇到 “未数字签名” 错误。​
  • 解决办法:执行命令Unblock-File (Join-Path $env:pyenv 'bin/pyenv.ps1')来解除对pyenv脚本的阻止。​

方法二:手动安装​

  1. 访问pyenv-win的GitHub 仓库。​
  1. 点击页面上的 “Code” 按钮,选择 “Download ZIP” 下载pyenv-win的压缩包。​
  1. 创建一个.pyenv文件夹在你的用户目录下。可以通过在 PowerShell 或 Git Bash 中运行命令mkdir $HOME/.pyenv来创建。​
  1. 解压下载的pyenv-win.zip文件到刚刚创建的.pyenv目录中。解压后,你应该在$HOME/.pyenv/pyenv-win/bin路径下看到bin目录。​

方法三:使用 Windows 包管理器安装​

  1. 使用 Chocolatey 安装:如果你的系统安装了 Chocolatey 包管理器,可以在命令提示符或 PowerShell 中运行命令choco install pyenv-win来安装pyenv-win。​
  1. 使用 Scoop 安装:如果使用 Scoop 包管理器,首先在 PowerShell 中运行命令scoop bucket add main添加主存储库,然后运行scoop install main/pyenv来安装pyenv-win。需要注意的是,在撰写本文时,pyenv-win尚未在winget存储库中。​

配置环境变量​

安装完成后,需要配置系统环境变量,确保系统能够正确识别pyenv-win。​

  1. 添加 PYENV 变量:按下 Windows 键,搜索 “编辑账户的环境变量” 并打开。在 “用户变量” 部分,点击 “新建” 按钮。​
  • 变量名:PYENV​
  • 变量值:C:\Users\你的用户名\.pyenv\pyenv-win(请将 “你的用户名” 替换为你实际的 Windows 用户名)​
  1. 添加 PYENV_HOME 变量:同样在 “用户变量” 中,点击 “新建”。​
  • 变量名:PYENV_HOME​
  • 变量值:C:\Users\你的用户名\.pyenv\pyenv-win​
  1. 添加 PYENV_ROOT 变量:继续在 “用户变量” 中新建变量。​
  • 变量名:PYENV_ROOT​
  • 变量值:C:\Users\你的用户名\.pyenv\pyenv-win​
  1. 更新 Path 变量:在 “系统变量” 中找到 “Path” 变量,双击打开编辑窗口。点击 “新建”,添加以下两个路径:​
  • %USERPROFILE%\.pyenv\pyenv-win\bin​
  • %USERPROFILE%\.pyenv\pyenv-win\shims​

完成上述操作后,点击 “确定” 保存所有环境变量的更改。​

可能遇到的环境变量配置问题及解决办法​

  1. 问题:重启 PowerShell 后,执行pyenv --version提示 "pyenv 不是内部或外部命令"。​
  • 解决办法:检查环境变量配置是否正确,确保%USERPROFILE%\.pyenv\pyenv-win\bin和%USERPROFILE%\.pyenv\pyenv-win\shims已添加到系统 Path 变量中;重新打开 PowerShell 窗口或重启电脑使环境变量生效。​
  1. 问题:设置了全局 Python 版本,但执行python --version仍显示旧版本。​
  • 解决办法:检查系统环境变量中是否存在其他 Python 路径,优先于pyenv的路径,如有则调整顺序;执行pyenv rehash更新 shim 文件。​

验证安装​

重新打开一个新的 PowerShell 窗口(确保不是之前以管理员身份打开的那个),运行命令pyenv --version。如果安装和配置成功,该命令会显示pyenv-win的版本号,例如 “pyenv 2.64.11”。​

使用 pyenv-win 管理 Python 版本​

查看可安装版本​

运行命令pyenv install --list,该命令会列出所有pyenv-win支持安装的 Python 版本(仅限 Windows 预编译版)。列表可能会很长,你可以通过管道符|结合findstr命令进行筛选,例如pyenv install --list | findstr 3.8,这将只列出与 Python 3.8 相关的版本。​

安装指定版本​

使用命令pyenv install <版本号>来安装指定版本的 Python。例如,要安装 Python 3.9.5,运行pyenv install 3.9.5。安装过程可能需要一些时间,期间会从 Python 官方网站下载安装包并进行安装。如果下载速度很慢,可以尝试使用镜像源加速下载,命令格式为pyenv install <版本号> --mirror <镜像源地址>,例如pyenv install 3.9.5 --mirror https://npm.taobao.org/mirrors/python/。另外,也可以手动从 Python 官网下载对应版本的.zip文件,将文件放入~\.pyenv\pyenv-win\install_cache目录下,然后再执行pyenv install <版本号>命令进行安装。​

查看已安装版本​

运行pyenv versions命令,该命令会列出所有已安装的 Python 版本,其中带有*号的版本表示当前激活的版本。​

设置全局默认版本​

使用pyenv global <版本号>命令可以设置全局默认的 Python 版本。例如,pyenv global 3.9.5将把系统的全局默认 Python 版本设置为 3.9.5,在没有其他局部或临时版本设置的情况下,系统将使用该版本的 Python。​

设置局部版本(当前目录)​

在项目目录中,运行pyenv local <版本号>命令可以设置当前目录及其子目录使用的 Python 版本。执行该命令后,会在当前目录下生成一个.python-version文件,文件内容为设置的版本号。当在该目录及其子目录中运行 Python 相关命令时,系统会自动使用该版本的 Python。​

临时切换版本(仅当前会话)​

运行pyenv shell <版本号>命令可以在当前 Shell 会话中临时使用指定版本的 Python。这种设置只在当前打开的 Shell 窗口中有效,关闭窗口后设置失效。​

验证当前 Python 路径​

运行pyenv which python命令,该命令会返回当前使用的 Python 解释器的路径,例如~\.pyenv\pyenv-win\versions\3.9.5\python.exe,通过该路径可以确认当前使用的 Python 版本是否为预期版本。​

更新 pyenv-win​

如果是通过 Chocolatey 安装的pyenv-win,可以使用choco upgrade pyenv-win命令进行更新。如果是通过其他方式安装的,可以运行pyenv update命令来更新pyenv-win的版本数据库缓存,以便获取最新的可安装 Python 版本信息。​

卸载 Python 版本​

使用pyenv uninstall <版本号>命令可以卸载指定版本的 Python。例如,pyenv uninstall 3.9.5将卸载已安装的 Python 3.9.5 版本。在卸载前,请确保该版本没有被当前项目或系统其他部分使用。​

清理缓存和版本​

在安装新版本的 Python 或安装新的 Python 工具后,建议运行pyenv rehash命令。该命令会重新生成pyenv的 shim,确保系统能够正确找到新安装的 Python 版本及其相关工具的可执行文件。​

使用过程中可能遇到的问题及解决办法​

  1. 问题:执行pyenv global或pyenv local后,Python 版本未变化。​
  • 解决办法:使用pyenv versions查看当前激活的版本,确认设置是否成功;检查项目目录下是否存在.python-version文件,可能被局部设置覆盖。​
  1. 问题:使用某个 Python 版本安装了包,但无法导入。​
  • 解决办法:确保使用正确的 Python 版本安装包,例如:pyenv shell 3.9.5后再执行pip install package-name;检查包是否安装在对应版本的 site-packages 目录中。​
  1. 问题:执行pyenv update时出现网络错误或权限问题。​
  • 解决办法:如果是通过包管理器(如 Chocolatey)安装的pyenv-win,使用对应包管理器的更新命令(如choco upgrade pyenv-win);手动更新:删除~\.pyenv\pyenv-win目录,重新执行安装步骤。​

通过以上步骤,你已经成功安装并配置了pyenv-win,并且能够熟练使用它来管理多个 Python 版本。在实际开发过程中,根据不同项目的需求灵活切换 Python 版本,将大大提高开发效率,避免因版本不兼容导致的各种问题。同时,遇到常见问题时,也能根据上述解决办法快速处理,保障开发顺利进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/86864.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/86864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB 常见查询语法与命令详解

MongoDB 作为文档型数据库&#xff0c;其查询语言基于 BSON&#xff08;二进制 JSON&#xff09;格式&#xff0c;与传统关系型数据库的 SQL 语法有较大差异。 一、基本查询命令 1. find()&#xff1a;查询文档 语法&#xff1a;db.collection.find(查询条件, 投影)示例&…

AlpineLinux安装docker

或许你在docker中使用 Alpine Linux 的镜像使用得多,但是有没有想过在 Alpine Linux 上安装 Docker 来使用呢?默认情况下,Docker 包位于社区仓库中,因此在使用包管理来安装docker之前建议更换为国内源,并开启社区仓库的链接。 下面的操作是在root用户下运行的,如果要使用…

docker安装gitlab并配置ssl证书

本篇安装环境 Docker版本&#xff1a;Docker version 28.3.0 域名&#xff1a;test.disallow.cn 自签证书&#xff1a;/etc/gitlab/ssl&#xff08;已经存放在该目录&#xff09; 一、拉取镜像 docker run -itd \--privilegedtrue \--hostname gitlab.test.disallow.cn \--p…

Java开发者转型AI时代的路径

Java开发者转型AI时代的路径 引言 随着人工智能技术的飞速发展&#xff0c;AI已不再是遥不可及的未来&#xff0c;而是深刻影响着各行各业的当下。对于Java开发者而言&#xff0c;面对AI浪潮&#xff0c;如何顺势而为&#xff0c;实现职业转型与技能升级&#xff0c;成为摆在…

QT6 源(140)模型视图架构里的视图总基类 QAbstractItemView:

&#xff08;1&#xff09;先给出本类的继承关系 &#xff1a; &#xff08;2&#xff09;Qt 已经预先为视图定义了键盘功能&#xff0c;Qt 大师们通过编程&#xff0c;已经完善了视图对键盘的响应操作 &#xff1a; &#xff08;3&#xff09;因为本类是抽象基类&#xff0c;无…

vue上传各种文件,并预览组件,(预览,下载),下载resources目录下文件

前端组件vue 最终效果 <template><div ><div class"file-list" v-if"existingFiles.length > 0"><div class"file-card" v-for"(file, index) in existingFiles" :key"file.id"><div clas…

【CS创世SD NAND征文】SD NAND赋能新一代儿童智能玩具

基于全志F1C100S的高可靠存储方案 文章目录 基于全志F1C100S的高可靠存储方案[toc]前言 一、应用产品介绍&#xff1a;儿童智能玩具的需求演变二、技术方案介绍&#xff1a;构建智能玩具的"大脑"与"记忆库"三、核心技术模块分析3.1 主控芯片&#xff1a;全…

mac触摸板设置右键

在 Mac 笔记本上&#xff0c;触摸板默认没有物理左右键分区&#xff0c;但可以通过以下方式实现“右键”功能&#xff08;称为 辅助点按&#xff09;&#xff1a; 一、启用与使用右键&#xff08;辅助点按&#xff09; 步骤1&#xff1a;检查系统设置 点击屏幕左上角 &#x…

稳定币发行量创纪录地超过 Visa 交易量

稳定币发行量创纪录地超过 Visa 交易量 稳定币的崛起正在重塑全球金融格局&#xff0c;华夏基金首席执行官甘天&#xff08;Gan Tian&#xff09;强调了稳定币的快速增长&#xff0c;并指出稳定币的交易量在短短五年内就超过了Visa 40年的交易量。这凸显了货币使用的转变。 稳…

编程 IDE 混战简史:从 Copilot 到 Claude Code,一场重塑开发方式的战争

unsetunset引言&#xff1a;开发新纪元的序幕unsetunset 编程世界&#xff0c;从最初依赖打孔卡和简陋的命令行工具&#xff0c;到如今功能琳琅满目的集成开发环境&#xff08;IDE&#xff09;&#xff0c;每一步都见证了效率与智能的飞跃。IDE作为开发者与代码交互的核心界面&…

软测八股--计算机网络

计算机网络基础 局域网广域网 局域网&#xff1a;一个区域内由多台计算机互联成的计算机组&#xff08;学校&#xff0c;办公室&#xff0c;公司/学校等&#xff09;。可以实现文件管理&#xff0c;应用软件管理&#xff0c;答应及管理&#xff0c;扫描仪共享等。是封闭的&am…

某省职业院校技能大赛 高职组“信息安全管理与评估”赛项第二部分:应急响应

&#xff01;&#xff01;&#xff01;需要环境可私信博主&#xff01;&#xff01;&#xff01; &#xff01;&#xff01;&#xff01;若有错误欢迎指正&#xff01;:) 序号任务要求1提交攻击者的两个内网IP地址2提交网站管理员用户的用户名和密码3提交黑客得到 mysql 服务的…

OkHttp 简单配置

OkHttpClient 的简单配置&#xff0c;包含重试&#xff0c;线程池 Configuration public class OkHttpConfig {Bean("deSourceOkHttp")public OkHttpClient okHttpClient() {return new OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS).readTimeout(3…

群晖nas安装moodle跳坑记录

1&#xff0c;套件里面直接安装 会安装好几个依赖&#xff0c;包括php apach &#xff0c;数据库。这些安装的时间就比较长。 安装完成后自动安装 Moodle。 过程也很长数据库里面的表有接近500张。 2&#xff0c;安装位置 顺便提一下 nas程序的安装位置 这两个位置好像都不是…

鸿蒙HarmonyOS 5小游戏实践:打砖块游戏(附:源代码)

打砖块是一款经典的游戏&#xff0c;它简单易懂却又充满挑战性。本文将介绍如何使用ArkUI框架开发一个完整的打砖块游戏&#xff0c;涵盖游戏逻辑设计、UI实现和交互处理等核心内容。 游戏架构设计 我们的打砖块游戏采用了组件化设计&#xff0c;主要分为两个部分&#xff1a;…

Flutter MobX 响应式原理与实战详解

&#x1f4da; Flutter 状态管理系列文章目录 Flutter 状态管理(setState、InheritedWidget、 Provider 、Riverpod、 BLoC / Cubit、 GetX 、MobX 、Redux) setState() 使用详解&#xff1a;原理及注意事项 InheritedWidget 组件使用及原理 Flutter 中 Provider 的使用、注…

浅谈国产数据库多租户方案:提升云计算与SaaS的资源管理效率

近年来&#xff0c;“数据库多租户”这一概念在技术圈内频频出现&#xff0c;成为云计算和SaaS&#xff08;软件即服务&#xff09;架构中的重要组成部分。多租户架构不仅为企业提供了高效的资源隔离与共享解决方案&#xff0c;还能大幅降低成本&#xff0c;提高系统的可扩展性…

Wpf的Binding

前言 wpf的Binding就像一个桥梁&#xff0c;它的作用就是连接逻辑层与界面层&#xff0c;既能够把逻辑层的数据搬到界面层展示&#xff0c;又能将界面层的数据更改后传递到逻辑层&#xff0c;Binding的数据来源就是Binding的源&#xff0c;数据展示的地方就是Binding的目标。 …

嵌入式单片机中SPI串行外设接口控制与详解

串行外设接口(Serial Peripheral Interface)的简称也叫做SPI,是一种高速的、全双工同步通信的一种接口,串行外设接口一般是需要4根线来进行通信(NSS、MISO、MOSI、SCK),但是如果打算实现单向通信(最少3根线),就可以利用这种机制实现一对多或者一对一的通信。 第一:…

【世纪龙科技】新能源汽车动力电池总成装调与检修教学软件

在新能源汽车产业“技术迭代快、安全要求高、实操风险大”的背景下&#xff0c;职业院校如何以“项目式教学改革”为突破口&#xff0c;破解传统实训“高成本、高风险、低效率”的困局&#xff1f;江苏世纪龙科技以桌面VR沉浸式技术为支点&#xff0c;推出《新能源动力电池总成…