[转载] 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-dl
或yt-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的东西)。
现在python
和python3
命令都将使用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版本,然后从下拉菜单中选择你想要的版本:
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 (8.09 KiB) Viewed 8944 times
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异