多版本Python管理
pyenv
是一个用于管理多个 Python 版本的工具,特别适合在同一台机器上需要使用不同版本 Python 的开发者。以下是 pyenv
的使用教程,包括安装、配置和常用命令的介绍。
1. 安装pyenv
在MacOS上,可以通过Homebrew安装pyenv
。
步骤:
-
安装Homebrew(如果尚未安装):
1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
安装
pyenv
:1
brew install pyenv
-
配置Shell环境
你需要在Shell配置文件(如.bashrc
,.zshrc
,.bash_profile
等)中添加以下内容以确保pyenv
正常工作:1
2
3
4echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc然后,重新加载Shell配置文件:
1
source ~/.zshrc
2. 安装Python版本
pyenv
允许你安装任意版本的 Python,包括老版本、新版本和特定的测试版。
步骤:
-
列出可用的 Python 版本:
1
pyenv install --list
这将列出所有可以安装的Python版本。
-
安装特定版本的Python:
例如,要安装Python 3.9.1:1
pyenv install 3.9.1
3. 设置Python版本
pyenv
允许你在全局、目录或项目中设置不同的Python版本。
步骤:
-
设置全局(系统范围内的)Python版本:
1
pyenv global 3.9.1
这将设置系统使用Python 3.9.1作为默认Python版本。
-
设置本地(当前目录或项目)的Python版本:
进入项目目录,并设置该目录使用的Python版本:1
pyenv local 3.8.6
这将在项目目录中创建一个
.python-version
文件,指示该目录使用的Python版本。 -
设置Shell会话的Python版本:
如果你只想在当前Shell会话中使用某个版本的Python,可以使用:1
pyenv shell 3.7.9
4. 查看当前使用的Python版本
要查看pyenv
正在使用的Python版本,可以使用:
1 |
|
这个命令会显示当前Python的版本和它是如何选择的(全局、本地或Shell)。
5. 卸载Python版本
如果你不再需要某个Python版本,可以使用以下命令卸载它:
1 |
|
6. 与pip
配合使用
每个Python版本都会有独立的pip
,安装和管理Python包时,pip
对应的就是你使用的那个Python版本的包管理器。例如:
1 |
|
7. 升级pyenv
要保持pyenv
的最新状态,你可以使用Homebrew来升级:
1 |
|
8. 常用命令总结
-
pyenv install <version>
: 安装指定版本的Python。 -
pyenv uninstall <version>
: 卸载指定版本的Python。 -
pyenv global <version>
: 设置全局Python版本。 -
pyenv local <version>
: 设置本地Python版本(针对当前目录)。 -
pyenv shell <version>
: 设置当前Shell会话的Python版本。 -
pyenv versions
: 列出所有已安装的Python版本。 -
pyenv version
: 显示当前使用的Python版本。 -
查看Python的完整路径:
1
pyenv which python
这个命令会显示当前使用的Python解释器的完整路径。
pyenv 如何指定 系统预装的 python 为全局解释器
pyenv
默认会覆盖系统的Python解释器,但你可以将系统预装的Python版本设为全局解释器。具体步骤如下:
1. 查找系统预装的Python路径
在MacOS上,系统预装的Python通常位于以下路径:
- Python 2.x 版本:
/usr/bin/python
- Python 3.x 版本:
/usr/bin/python3
你可以使用以下命令确认系统Python的路径:
1 |
|
2. 将系统Python设置为全局解释器
使用pyenv global
命令可以将系统预装的Python版本设置为全局解释器。
步骤:
-
创建一个版本名称为
system
的Python解释器(pyenv
内置):1
pyenv global system
-
验证当前使用的Python版本:
使用以下命令验证是否已经切换到系统Python:1
pyenv version
输出应类似于:
1
system (set by /Users/yourname/.pyenv/version)
这表示系统预装的Python已经被设为全局解释器。
3. 确认切换成功
你可以运行以下命令,确认Python路径是否指向系统的Python版本:
1 |
|
你也可以使用以下命令查看Python的完整路径:
1 |
|
这将返回系统预装Python的路径,例如/usr/bin/python
。
总结
通过设置pyenv global system
,你可以让pyenv
使用系统预装的Python版本作为全局解释器。这样做可以避免干扰系统的默认Python环境,同时仍然可以在需要时使用pyenv
管理的其他Python版本。