Mac与Python
——如何在Mac上配置Python
作者/cat老师
在Mac
下默认安装的Python
是Python 2.7.16
。
这是在2019年3月4日
发布的版本。距今已经有一年多的时间。新版本的Python
基本上按照一月一次的更新计划定期发布。截止到2020年10月23号
,Python
已经发布了Python 3.8.6
版本。
意味着,要在
Mac
上体验新版
Python3
的特性。就需要在
Mac
上安装
Python3
,并保持更新。
在这里我们使用
Homebrew
安装并执行更新。
首先--环境配置
先查看现在当前手中的Mac
环境准备情况。
检查Homebrew
因为我们使用
Homebrew
来安装和保持
Python
更新。因此,我们首先检查
Homebrew
环境。
如果没有显示内容,而是显示command not found: brew
。说明需要安装Homebrew
。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
查看本机安装的Python
如果之前使用过从python.org
下载的Python
进行过安装。那么它的安装和更新方式跟Homebrew
有所不同。
如果不需要同时存在多个旧Python
版本,就需要删除多余的Python
版本。
注意⚠️:在Mac
上,操作系统需要用到/usr/bin/python
下的Python
。所以该目录下的Python
不要删除。
但是,位于/usr/local/bin
或者通过符号链接到此处的Python
版本,可以进行删除。
如果位置是以
../Cellar/python
开头到,说明是用Homebrew
安装的。
不需要的Python
版本直接在此处删除,然后删除原文件即可。
安装Python
brew install python3
升级Python
brew upgrade python3
如果已经安装了最新版本的Python
,Homebrew
会显示:
安装所需的Python packages
安装Pipenv
:
brew install pipenv
Pipenv
是Kenneth Reitz
在2017年1月发布的Python
依赖管理工具,现在由PyPA
维护。你可以把它看做是pip
和virtualenv
的组合体。
我们到底是使用Homebrew
?Pip
或者Pipenv
?配合virtualenv
虚拟沙盒环境中安装Python package
。
Virtualenv
提供沙盒模式,创建了一个虚拟环境用于隔离Python
应用。
使用Homebrew
安装
如果要在项目内外使用某些Python package
,并希望它自动更新,并且Homebrew
提供安装方式,请使用Homebrew
!例如,如果我们打算在项目中使用Flake8
。则在整个项目中,我们都希望能够使用到Flake8
并且能自动更新:
brew install flake8
现在,Flake8
在整个系统中都可用。
Pipenv
配合virtualenv
安装
在开发中,如果我们要在特定的项目中使用特定的Python package
。最好的方式就是使用Pipenv
将其安装到当前的virtualenv
中。
比如,我们打算在某一个项目中使用pyppyn
来帮助我们动态读取安装配置和加载依赖项。
首先基于Python 3
使用pipenv
创建新的virtualenv-macOS
虚拟沙盒环境:
cd project_dir/pipenv --three
启动(activate
)virtualenv
并在其中安装pyppyn
:
pipenv shellpipenv install pyppyn
Pyppyn
仅在project_dir/
下的virtualenv
中可用。
在virtualenv
外部使用Pip
安装
virtualenv
外部使用Pip
安装如果我们希望Python package
在整个系统中都可用,但又不想随便更新,或者Homebrew
没有提供安装方式。
则可以使用Pip
安装。
比如,如果我们打算在项目中使用Pylint
对代码进行编码,但是Homebrew
没有提供安装方式。则可以在任何virtualenv
之外使用Pip
安装它。
启动一个新的终端,以确保不在virtualenv
中:
pip3 install pylint
此时,Pylint
将在系统全局可用,包括基于Python 3
创建的virtualenv
。
但是,我们将负责通过Pip
保持最新状态:
pip3 install pylint --upgrade
通过结合Cron
和Pip
进行安装
merry christmas圣诞快乐
如果您想自动保持系统范围的Python package
为最新,但是Homebrew
没有提供安装方式。则可以使用crontab
。
例如,如果要在整个Python
项目中使用Pylint
,并且希望其自动保持最新状态。使用crontab
定期运行上面提到的upgrade
命令。
crontab
是用来定期执行程序的命令。
crontab -e
执行文字编辑器来设定时程表。如果没有更改过文字编辑器,该命令将打开系统的默认编辑器Vim
。
如果以前没有使用过该命令,则会看到一个空白文件。如果之前已经使用过crontab
,则会看到之前添加的内容。
Cron
无法访问您的Bash
配置文件,因此我们将通过设置来确保系统可以找到命令PATH
:
#!/bin/sh PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
随后添加crontab
定时步骤。每个步骤都包含一个命令和执行该命令的时间表。
例如,要分别在每天的4:00
和4:30
更新Pylint
和Homebrew
,可以添加如下两个步骤:
40 00 * * * pip3 install pylint --upgrade40 30 * * * brew upgrade
每次运行这些命令时,系统可以自动向我们发送包含命令执行结果的电子邮件。
可以通过在crontab
文件的顶部插入以下行来禁用此行为:
MAILTO=""