搭建基本的 Python 开发环境
使用 pyenv 来安装 Python
先安装 pyenv
官网:https://github.com/yyuu/pyenv
-
通过 Homebrew 安装
brew update brew install pyenv
使用 Homebew 安装的话一些基本的 pyenv 插件都安装了,就不必再次安装,例如 pyenv-pip-rehash 插件
-
将
eval "$(pyenv init -)"
添加到 profile, 例如 .zshrc -
一般不用进行如下操作
默认使用的是 ~/.pyenv 目录,如果你需要使用 Homebrew 目录请将如下内容添加到 profile
export PYENV_ROOT=/usr/local/var/pyenv
-
重新运行 shell
exec $SHELL
具体 pyenv 用法可参考:https://github.com/yyuu/pyenv/blob/master/COMMANDS.md
既然这个项目是从 rbenv fork 而来的,想必用法也差不多了,事实也确实如此,亦可参考我以前写的文章《在 Mac 上用 rbenv 安装 ruby - 安装 Ruby | 明无梦的博客》和《在 Mac 上用 rbenv 安装 ruby - 管理 Ruby | 明无梦的博客》
安装 Python3
-
查看可安装的 Python 版本
pyenv install -l
-
安装具体的 Python 版本
pyenv install 3.4.3
-
查看已经安装的 Python 版本
pyenv versions
-
切换到需要的 Python 版本(全局生效)
pyenv global 3.4.3
-
升级 pip
pip install --upgrade pip
如果这时你执行 brew doctor
会出现类似如下的问题
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
Warning: python is symlinked to python3
This will confuse build scripts and in general lead to subtle breakage.
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:
/Users/mwum/.pyenv/shims/python-config
/Users/mwum/.pyenv/shims/python3-config
/Users/mwum/.pyenv/shims/python3.4-config
/Users/mwum/.pyenv/shims/python3.4m-config
解决办法参考:
【Homebrew】brew doctorのWarning対処方法 (その3) + envコマンドについて
pyenv not playing nice with brew “config”. [$5] #106
方法为:
将 alias brew='"env" PATH=${PATH//$(pyenv root)\/shims:/} brew'
添加到 profile
外什么要将其中的 env
加上 ""
?
执行 env
之后,如其中的结果出现了空格,会出现 No such file or directory
的问题,为了避免此问题,所以加上 ""
安装 Virtual Environments 及使用
这个工具可使不同的项目保持不同的依赖,(很闲的话还可以使同一个项目保持不同的依赖)
例如,Project X 依赖版本 1.x, 但是 Project Y 依赖版本 4.x
也可使用 pyenv-virtualenv 这个工具,功能是一样的
通过 pip 来安装
pip install virtualenv
基本使用
参考:Virtual Environments | Python Guide
-
为一个项目创建一个虚拟环境,名字为 venv, 可以改成你喜欢的名字
cd my_project_folder virtualenv venv
-
也可以指定 Python 版本
virtualenv -p /usr/local/bin/python3 venv
-
激活虚拟环境
source ./venv/bin/activate
如果不加参数那么全局安装的包也包括在内,如果不想加载全局的包可使用参数
--no-site-packages
在虚拟环境激活的情况下,如果使用
pip
来安装各种包,包会被安装在当前虚拟环境下,即./venv
文件夹下,并不会对全局环境产生影响 -
关闭虚拟环境
deactivate
-
删除虚拟环境,只需删除
./venv
文件夹即可rm -rf ./venv