[转载] Linux mint 21.1 下 “pyenv”安装多版本“python环境”及使用教程

搭配使用

pyenv安装及使用教程 : https://www.cnblogs.com/Free-A/p/16158370.html

pyenv安装 : https://www.cnblogs.com/leoshi/p/15567193.html


英文教程添加环境不知道为什么不行,按照上面文章下面的代码添加就正常了。 时间:2023-3-20

# 编辑 bashrc
vim ~/.bashrc

# 文件最后添加
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init -)"

Introduction

Python既是一种流行的初级语言,也是Mint的一个关键部分,可以使操作系统正常运行。新手的一个常见错误是弄乱了他们全系统的Python安装:删除它,用另一个代替它,从PPA下载Python版本,或者更糟糕的是,从源码下载并构建另一个版本(没有明确的卸载方法)。其结果可能是失去其桌面功能,或者更糟。

下面的命令是在终端窗口中使用的,使用bash。其他shells的指令是不同的。(你不需要输入箭头➜字符,那只是为了显示。)

The python command

首先,通常会有关于Python 2和3版本/命令的混淆。通常情况下,64位Mint(20、20.1、20.2)所带的Python是Python 3.8的某个版本。在Mint 21上,它是3.10的某个版本。

    ➜ python --version
    Command 'python' not found, did you mean:
      command 'python3' from deb python3
      command 'python' from deb python-is-python3

哎呀! 这是因为python是指Python 2,而python3是指Python 3。这是所有基于Ubuntu的发行版上的默认行为。这导致了一些流行工具的问题,如youtube-dlyt-dlp,它们希望python命令能使用Python 3。这是一个非常普遍的问题,以至于Ubuntu为它创建了一个包。

     ➜ python3 --version
    Python 3.8.10

在Mint 21上,这将是类似3.10.6的东西。

在Mint 20及以上版本,Python 2默认是不存在的,所以你的操作系统不再需要它,所以把python命令重定向到python3是安全的。这不会扰乱任何已经在使用/usr/bin/python3'的东西。所以让我们安装apt`告诉我们的软件包 (显然,如果你出于某种原因故意安装了Python 2,就不要这么做!)。

sudo apt install python-is-python3

This created a symlink from /usr/bin/python to /usr/bin/python3. Let's try again:

     ➜ python --version
    Python 3.8.10

(同样,在Mint 21上这将是类似3.10.6的东西)。

现在pythonpython3命令都将使用Python 3。只要你因为某些特殊原因没有安装Python 2,这就没问题。

使用PyEnv的多个Python版本管理
管理编程语言的多个版本是开发者的一个普遍问题,所以他们为此开发了一些工具。有很多方法可以做到这一点,但有一种方便的方法是PyEnv:https://github.com/pyenv/pyenv/它不会干扰你的系统Python或你的操作系统。它基本上是一种使用虚拟环境的花式方法。

要安装PyEnv,我们需要先安装依赖项。需要这些东西来下载和安装PyEnv本身,以及下载和构建替代的Python版本。

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

通常情况下,这些库不应该冲突或删除任何东西,但为了安全起见,在你点击回车键之前,请仔细阅读apt信息!

PyEnv的手动安装相当复杂,所以现在我们访问自动安装程序[https://github.com/pyenv/pyenv-installer](https://github.com/pyenv/pyenv-installer)。

它告诉我们要下载并运行一个脚本。curl https://pyenv.run | bash你应该看一看,确保它是安全的。https://raw.githubusercontent.com/pyenv ... -installer它是开源的,而且被很多人检查过,所以它应该是安全的,但还是要看一下。绝对不要相信我的话。

我们开始吧:

    curl https://pyenv.run | bash

Setting up PyEnv for your profile and shell

现在让我们来设置PyEnv,这样当我们登录时它就会一直可用。让我们打开~/.profile文件。

    xed ~/.profile

Add these three lines to the end:

    export PYENV_ROOT="$HOME/.pyenv"
    command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"

Save, close. Now let's open ~/.bashrc:

    xed ~/.bashrc

Add this line at the end:

    eval "$(pyenv init -)"

保存,关闭。注销,重新登录。打开一个终端。让我们检查一下东西 :

    ➜ pyenv versions
    * system (set by /home/spamegg/.pyenv/version)

Installing other Python versions with PyEnv

到目前为止,我们只有系统版的 Python。让我们来安装另一个版本的 Python。我们可以列出可用的版本:

    pyenv install --list

Wow, there are A LOT of versions! Let's go with 3.12-dev:

    pyenv install 3.12-dev

Now let's check again:

     ➜ pyenv versions
    * system (set by /home/spamegg/.pyenv/version)
      3.12-dev

很好。它被安装到~/.pyenv/versions/3.12-dev目录中。星星*****,就是在终端中激活的那个。让我们来切换它。

    pyenv shell 3.12-dev

Now let's try to use Python:

     ➜ python
    Python 3.12.0a3+ (heads/main:7116030, Jan  7 2023, 17:54:20) [GCC 11.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

很好! 用Ctrl+D退出Python shell。

要变回来,我们可以使用pyenv shell system。再检查一下 :

     ➜ python
    Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

(同样,这将是Mint 20上的3.8.10版本。)

在 IDE 中轻松使用 Python 版本

但如果你使用的是 IDE,你甚至不需要在终端机中手动改变 Python 的版本! Visual Studio Code https://code.visualstudio.com/ 和 PyCharm Community Edition https://www.jetbrains.com/pycharm/downl ... tion=linux 是两个用于 Python 编码的优秀免费 IDE。

你可以在Visual Studio Code中轻松地选择你的Python版本(首先安装Python扩展!)。点击左下角的Python版本,然后从下拉菜单中选择你想要的版本:

vsc2.png

Then the VS Code Integrated Terminal executes pyenv shell 3.10.0 command for you automatically.

And PyCharm (click bottom right corner, then "Add Interpreter"):

pyc1.png

pyc1.png (8.09 KiB) Viewed 8944 times

pyc2.png

Going further

你可以用 pyenv install ... 来安装尽可能多的 Python 版本,在这里你用 pyenv versions --list 中列出的任何一个版本来替换 ...。你可以用pyenv uninstall ...删除一个Python版本,但显然不要尝试pyenv uninstall system! 我没有试过,但它可能不会让你这么做。

你可以用pyenv update命令来更新pyenv本身。如果你厌倦了它,你可以用rm -fr ~/.pyenv来 "卸载 "一切。再一次,这很安全,不会干扰你的系统Python。

pyenv shell ...命令的效果将在你关闭终端时失效,你的Python版本将恢复到原来的样子。如果你想让这些变化保持下去,你必须使用,例如,pyenv global 3.12-dev。但如果你忘了把它换回来,这可能是个麻烦! 只要做pyenv global system,你就安全了。

pyenv shell ...(还有pyenv global ...)命令可以根据你的需要同时启用许多Python版本,如果你同时在多个Python版本上测试你的代码的话(例如,用tox这样的测试工具运行并行测试)。

我已经安装了14个版本,可以并行测试,超级有用! 在Github页面上阅读更多关于PyEnv的信息。https://github.com/pyenv/pyenv/

来源

转载自:https://forums.linuxmint.com/viewtopic.php?f=42&p=2103213

posted @   夏目贵志ㅤ  阅读(344)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示