Python 官方文档:入门教程 => 点击学习
摘要 Mac 默认安装的python是 python3,但是如果我们需要其他Python版本时,该怎么办呢? 例如:需要python2 版本,如果使用homebrew安装会提示没有python2。同时使用python --version 会
Mac 默认安装的python是 python3,但是如果我们需要其他Python版本时,该怎么办呢?
例如:需要python2 版本,如果使用homebrew安装会提示没有python2。同时使用python --version 会发现commond not found。
所以本文主要解决以下几个问题:
为了解决上述问题,我们会使用homebrew 安装 pyenv。pyenv 是一个管理python的工具。pyenv官方地址:https://github.com/pyenv/pyenv。当然python 版本管理工具还有其他各种各类的,大家可以根据自身实际情况决定使用哪个。本文主要使用pyenv。以及解决没有python commnond问题。解释为什么需要配置PATH。PATH的作用等等。
python 官方地址:https://www.python.org/downloads/macos/
brew install pyenv
如果觉得安装缓慢,或者总是失败可以切换homebrew的镜像源。不适用外网,使用内网。
export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"
📢 该配置可在.bash_profile、.zshrc等文件中添加,根据实际情况进行添加。apple 芯片需要在.zshrc添加 。 inter 芯片 是 .bash_profile。
PYENV_ROOT="$HOME/.pyenv"
当你在终端(terminal)中执行pyenv init时会自行配置,就是声明一个变量PYENV_ROOT。$HOME 指的是当前用户根目录。
export PATH="$PYENV_ROOT/bin:$PATH"
$PYENV_ROOT 是指的上一步设置的路径的变量,再加上bin,即指的pyenv的可执行路径。
:$PATH 是指在后面追加原来PATH设置的路径,如果不追加会把前面的PATH值给覆盖了。
把pyenv 的可执行路径设置到shell查找路径中。当执行pyenv时,会按照所配置的路径进行查找可执行文件。
eval "$(pyenv init -)"
1. 设置环境变量:它会设置必要的环境变量,包括 PYENV_ROOT,该变量指定 Pyenv 的根目录,通常设置为 Pyenv 安装的目录。
2. 启用 Pyenv shims:Pyenv 使用一个称为 "shim" 的机制来拦截并重定向 Python 命令。pyenv init 会确保这些 shims 位于 Shell 的 PATH 中,以便 Pyenv 可以拦截和解析您运行的 Python 命令,以确保使用正确的 Python 版本。
3. 提供版本管理功能:它启用版本管理功能,允许您使用 pyenv global、pyenv local 和 pyenv shell 等命令来选择和切换不同的 Python 版本。
source ~/.zshrc
📢 .zshrc 文件主要是为了shell与系统进行会话时,会根据.zshrc配置查找对应的执行文件。
修改.zshrc 后,配置生效的方式主要有三个:
pyenv -v
pyenv install -l
pyenv install 3.9.1
pyenv global 3.9.1
pyenv local 3.9.1
局部安装python,在不同项目中需要使用不同的python时非常有用。在当前项目目录下,会在当前根目录下自动生成一个.python-version文件。
python --version
python
查看pyenv 相关指令
pyenv help
来源地址:https://blog.csdn.net/z1067832450_/article/details/132641769
--结束END--
本文标题: 如何在mac上安装多版本python并配置PATH
本文链接: https://lsjlt.com/news/414269.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0