”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 使用 pyenv 管理 Python 版本和虚拟环境

使用 pyenv 管理 Python 版本和虚拟环境

发布于2024-08-06
浏览:859

Managing Python Versions and Virtual Environments using pyenv

pyenv包是一个非常有用的工具,用于管理Python的多个版本,没有太多麻烦。它还附带了各种用于简化开发体验的插件,包括 pyenv-virtualenv,它提供了管理虚拟环境和 conda 环境的功能。

不幸的是,Windows 不支持 pyenv。但是,我们建议 Windows 用户使用 pyenv-win 分支。

安装 pyenv

1.安装所需的Python构建依赖项

Mac OS X

brew install openssl readline sqlite3 xz zlib

Ubuntu/Debian/Mint

sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

高山

apk add --no-cache git bash build-base libffi-dev openssl-dev bzip2-dev zlib-dev readline-dev sqlite-dev 

2.安装pyenv

安装 pyenv 和一些流行插件的最快方法是使用 pyenv-installer:

curl https://pyenv.run | bash

接下来,重新启动 shell 以使路径更改生效:

exec $SHELL

3.更新pyenv

更新 pyenv 非常简单:

pyenv update

4.Python版本切换

  • pyenv local 3.3.3 - 在本地 shell 中设置 Python 3.3.3。
  • pyenv global 2.7.3 - 在所有 shell 中全局设置 Python 2.7.3。

5. 管理虚拟环境和Python版本

  • pyenv virtualenv 3.3.3 virtual-env-name - 创建一个名为 virtual-env-name 的虚拟环境,它使用 Python 3.3.3
  • pyenv virtualenvs - 显示创建的虚拟环境。
  • pyenv activate virtual-env-name - 使用 virtual-env-name 名称激活虚拟环境。
  • pyenv deactivate - 停用当前激活的虚拟环境。

卸载 pyenv

pyenv 可执行文件安装在 $PYENV_ROOT 中,默认为 ~/.pyenv。要卸载它,只需将其删除即可:

rm -fr ~/.pyenv

然后通过删除以下行来清理 .bashrc 文件:

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

结论

在本文中,我们了解了使用 pyenv 及其相关插件从一台计算机管理多个版本的 Python 和虚拟环境是多么简单和容易。

这篇文章最初发表在这里。

版本声明 本文转载于:https://dev.to/hisk/managing-python-versions-and-virtual-environments-using-pyenv-3i41?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本号的替代方法,它是使用以下语法: https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js(google hosted...
    编程 发布于2025-02-06
  • 如何使用Python的记录模块实现自定义处理?
    如何使用Python的记录模块实现自定义处理?
    使用Python的Loggging Module 确保正确处理和登录对于疑虑和维护的稳定性至关重要Python应用程序。尽管手动捕获和记录异常是一种可行的方法,但它可能乏味且容易出错。解决此问题,Python允许您覆盖默认的异常处理机制,并将其重定向为登录模块。这提供了一种方便而系统的方法来捕获和...
    编程 发布于2025-02-06
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。 To resolve this issue and ensure scripts execute on subsequent page visits, Firefox...
    编程 发布于2025-02-06
  • 如何检索SQL中每个用户的最新登录日期?
    如何检索SQL中每个用户的最新登录日期?
    SQL查询每个用户的最后登录记录日期 问题: 假设数据库表包含用户登录信息,我们如何检索每个用户的最后登录日期?考虑到可能存在重复的登录日期。 解决方案: 解决此问题有两种常见方法: 方法一:使用INNER JOIN的子查询 此方法利用子查询来识别每个用户的最后登录日期,然后用于过滤主表: sel...
    编程 发布于2025-02-06
  • 如何有效处理Java中的时区转换?
    如何有效处理Java中的时区转换?
    跨时区的时区转换 java.util.date类缺乏明确的时区分配。它的Tostring方法误导了JVM的默认时区,导致混乱。为了避免这些陷阱,现代Java利用Java.Time软件包进行更健壮的时间处理。 在Java.Time中转换时区,指定一个时区并调用ZonedDateTime.now方法...
    编程 发布于2025-02-06
  • 为什么我的烧瓶应用程序会抛出“ templatenotfound”错误,即使我的模板文件存在?
    为什么我的烧瓶应用程序会抛出“ templatenotfound”错误,即使我的模板文件存在?
    故障排除flask的templatenotfound错误 在尝试在flask中渲染模板,例如'home.html',您可能会遇到''''',您可能会遇到''' jinja2.exceptions.templatenot...
    编程 发布于2025-02-06
  • 删除地图条目是否会导致持有指针时的内存泄漏?
    删除地图条目是否会导致持有指针时的内存泄漏?
    [2一片指针可能会导致内存泄漏。这个问题将查询扩展到地图,特别是从持有的地图中删除条目是否会导致相似的行为。检查实现:确定此说法的真实性,让我们调查GO的运行时:Runtime/Hashmap.go(function MapDelete())中的映射删除的源代码。检查表明,删除(#600,#602)...
    编程 发布于2025-02-06
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    解决此问题,我们采用了一个巧妙的CSS解决方案来解决问题:高度:100%; 高度:auto; 宽度:100%; //对于水平块 ,使用绝对定位将图像定位在中心,以object-fit:object-fit:cover in IE和edge消除了问题。现在,图像将按比例扩展,保持所需的效果而不会失...
    编程 发布于2025-02-06
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-02-06
  • OpenGL的屏幕外渲染如何工作?
    OpenGL的屏幕外渲染如何工作?
    在OpenGl中roendering:详细的指南 framebuffers:读取像素: glreadpixels允许我们检索存储在flamebuffer中的像素数据并将其传输到主内存中。一种基本的OffScreen渲染方法涉及以下步骤:创建FrameBuffer: 使用glgenframebuff...
    编程 发布于2025-02-06
  • 如何使用PHP将斑点(图像)正确插入MySQL?
    如何使用PHP将斑点(图像)正确插入MySQL?
    在尝试将image存储在mysql数据库中时,您可能会遇到一个可能会遇到问题。本指南将提供成功存储您的图像数据的解决方案。 easudy values('$ this-> image_id','file_get_contents($ tmp_image)...
    编程 发布于2025-02-06
  • 为什么我的Mac OS X MySQL Server在不更新PID文件的情况下退出?
    为什么我的Mac OS X MySQL Server在不更新PID文件的情况下退出?
    mySQL启动错误:“服务器退出而无需更新PID文件”在Mac X 退出服务器,而无需更新PID文件此问题通常源于权限问题。以下是解决它的方法:检查运行mysql Instances 如果找到一个实例,请终止它: 接下来,检查/usr/usr/local/local/var/mysql/dire...
    编程 发布于2025-02-06
  • 如何从JCHECKBOX行选择中有效地从JTable中获得选择的行?
    如何从JCHECKBOX行选择中有效地从JTable中获得选择的行?
    [2在第一列中使用JCHECKBOX进行JCHECKBOX,以进行行选择。顺序遍历的效率很大。传统方法:Proposed Approach:Model-Based Tracking:Update a Set containing the selected row indices whenever t...
    编程 发布于2025-02-06
  • CSS儿童选择器:`>'和空间有什么区别?
    CSS儿童选择器:`>'和空间有什么区别?
    `和一个空间? “ />`还有一个空间? CSS中的“ />
    编程 发布于2025-02-06
  • 如何在整个HTML文档中设计特定元素类型的第一个实例?
    如何在整个HTML文档中设计特定元素类型的第一个实例?
    [2单独使用CSS,整个HTML文档可能是一个挑战。 the:第一型伪级仅限于与其父元素中类型的第一个元素匹配。 以下CSS将使用添加的类样式的第一个段落: }
    编程 发布于2025-02-06

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3