Python
macOS里面是自带python的,但是版本都相对老一点,而且直接对系统本身的python进行操作还是带有一定危险性的。pyenv 是一个强大 Python 包管理工具,可以灵活地切换各种 Python 版本,macOS 下强烈建议大家安装体验一下。
最新系统的macOS的话都是自带python2和python3的,对于python3的话可以通过brew进行安装,然后通过别名的方式去指定安装的版本,从而避免使用系统自带的python3
Pyenv
安装pyenv
brew install pyenv
- zsh/bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init --path)"' >> ~/.profile
版本安装
#查看已经安装的Python版本
pyenv versions
# 查看当前的 Python 版本
pyenv version
# 查看可安装的版本
pyenv install -l
# 安装与卸载 python 3.x.x
pyenv install 3.x.x
pyenv uninstall 3.x.x
这里如果(大概率)安装的时候比较卡,可以考虑在终端开代理或者使用proxychains
PYTHON_CONFIGURE_OPTS="--disable-ipv6" proxychains4 pyenv install <python版本>
国内加速安装python环境
v=3.8.6;wget https://npm.taobao.org/mirrors/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v
macos bigsur安装
- 设置 command-line tools
打开Xcode.app在Preference > Locations处选择正确版本的command-line tools - 安装python(设置环境变量)
直接执行如下命令即可:
pyenv install --patch 3.7.1 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch)
- 安装python(未设置环境变量)
创立一个脚本,注意这里如果不设置脚本直接复制命令执行(zsh)会莫名的报错
touch install_python.sh
chmod +x install_python.sh
在脚本里输入以下内容
#!/bin/bash
set -ex
CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(xcrun --show-sdk-path)/usr/lib -L/usr/local/opt/zlib/lib" \
CPPFLAGS="-I/usr/local/opt/zlib/include" \
PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig" \
pyenv install --patch 3.7.1 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch)
手工加速安装
[blog_secgxx] PYTHON_CONFIGURE_OPTS="--disable-ipv6" pyenv install 3.7.0
python-build: use [email protected] from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.0.tar.xz...
-> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
error: failed to download Python-3.7.0.tar.xz
BUILD FAILED (OS X 11.1 using python-build 20180424)
可以看到下载包的时候失败了,实际上这个包如果我们通过浏览器下载的话其实会很快,这个时候就需要手工加速一下
# 新建cache缓存目录
➜ mkdir ~/.pyenv/cache
# 将下载好的 压缩包 移动到 cache目录下
➜ mv ~/Downloads/Python-3.7.0.tar.xz ~/.pyenv/cache
# 再次安装 就会很快 秒装了
➜ pyenv install 3.7.0
Installing Python-3.7.0...
Installed Python-3.7.0 to /Users/xxx/.pyenv/versions/Python-3.7.0
# 安装完成手动清空cache目录
➜ rm -rf ~/.pyenv/cache/*
zsh: sure you want to delete the only file in /Users/xxx/.pyenv/cache [yn]? y
# 查看是否安装成功
➜ pyenv versions
* system (set by /Users/xxx/.python-version)
2.7.18
3.7.0
3.8.6
版本切换
pyenv 的 global、local、shell 的优先级关系是:shell > local > global
# global 全局设置 一般不建议改变全局设置
pyenv global <python版本>
# shell 会话设置 只影响当前的shell会话
pyenv shell <python版本>
# 取消 shell 会话的设置
pyenv shell --unset
# local 本地设置 只影响所在文件夹
pyenv local <python版本>