MAC INSTALL PYTHON AND PACKAGE MANAGER
Mac 系统10.x 之后会自带Python,它适合用于学习,不适合用来开发,因为一旦系统升级就有可能Python版本就会发生改变;Python是和系统绑定的,Homebrew是包管理器,可以永远获取最新版本的Python和pip以及Setuptools;改变OS X的Python版本有可能会触发系统隐藏的bug。
brew -> xcode -> python/python3 -> virtualenv
brew install python
brew install python3
pip install virtualenv
mkdir -p ~/Projects ~/Virtualenv
‘将pip限制在虚拟环境中,这样virtualenv默认使用pip管理包,且只能使用在激活环境中使用,而不会影响系统python的环境’
vim ~/.bash_profile
Add new one line:export PIP_REQUIRE_VIRTUALENV=true
source ~/.bash_profile
cd ~/Virtualenvs
‘创建两个版本的项目,分别使用的时python2和python3’
virtualenv foobar
virtualenv -p python3 foobar-py3
'升级全局到包'
vim ~/.bashrc
Add one new line: gpip(){ PIP_REQUIRE_VIRTUALENV="" pip "$@" }
gpip install --upgrade pip setuptools wheel virtualenv
应该安装类似于Setuptools之类用来安装第三方的Python类库。
安装Python需要GCC的支持,GCC用XCode下载。
Mac OSX 缺一个包管理器,Homebrew能弥补这个空白。
安装 Homebrew 可以去 官网 首页获取安装命令,一行即可完成。 brew install python
Homebrew 会替你安装 Setuptools 和 pip ,Setuptools 可以用 easy_install 替你下载和安装网络上的相应的Python包,也可以很简单的通过网络安装兼容Python版本的包。pip 是更容易安装和管理Python包的工具,相比于 easy_install ,更推荐这个pip。 在某些方面它比 easy_install 更好,且积极维护着。
虚拟环境是通过创建虚拟的Python环境,让在不同位置的不同项目保持独立性的工具。
virtualenv 是能创建分离的Python环境的工具。virtualenv创建一个文件夹来包含Python项目执行所需要的包,安装 pip install virtualenv
virtual 基本用法
1. 为项目创建虚拟的环境
cd my_project_folder
virtualenv venv
OR virtualenv -p /usr/bin/python2.7 venv
'virtualenv venv' 将在当前目录创建包含Python可执行文件的文件夹,和一份pip类库的复制,这样可以用pip来安装其它的包。virtualenv的环境名可以是任意的,这里是env;不指定名字将会把文件放在当前所在的目录,用 -p 可以指定python 环境。
使用 --no-site-packages
该参数,系统全局安装的包将不会被带入到新建的环境中,该参数走virtualenv 1.7版本之后是勾选的。
2.激活该环境
source venv/bin/activate
激活环境成功的话,bash提示符就会发生改变,那么现在用pip安装的包都将在这个env环境中。
pip install requests
3.关闭环境
deactivate
这将会将你带回到系统默认的Python解释器。
那么删除虚拟环境,只要删除它的文件夹就好。
Mac OS中主要有三种包管理工具:MacPorts,Homebrew,Fink。
1. MacPorts:因为 Mac OS 源自 BSD,因此将 BSD 中的 Port 移植到 OS 成为 MacPorts 就一点不奇怪。MacPorts 会独立于 OS 自建一套仓库树,OS 的包执行目录为 /usr/local,而 MacPorts 的包执行目录为 /opt/local。MacPorts 尽量不影响系统现有程序,自然也就尽量少复用系统已有程序。MacPorts 安装包的过程是下载该程序的所有源文件及其依赖包,然后在本地进行 Build 生成最终的可执行文件。这样做的好处是在系统中存在一套独立的生态环境,从而不影响系统自身的生态环境,缺点就是浪费了系统自身的生态资源。
2. Homebrew:在 Lion 之后兴起的包管理工具,工作方式与 MacPorts 类似,下载源代码然后本地 Build。不同之处在于 Homebrew 采取与 MacPorts 截然相反的态度,对系统资源是最大程度的利用,因此可以说 Homebrew 是直接对现有系统生态环境进行修改,所有包也是直接安装到现有的生态环境中,这样做的好处是节约了系统资源,但缺点是每一次操作都是直接对系统进行修改,严重依赖和影响现有系统。
3. Fink:基于 Debian 的 packaging tools,它下载的都是已编译后的二进制可执行文件(或源码),因此无需本地编译,即下即用。缺点是所有包都需要 Fink 预先编译,导致更新速度跟不上。
python version manager ??? virtualenv pyenv vagrant Anaconda pip Anaconda
Pythonbrew: Not maintain anymor.
Pyenv:
```
brew update
brew install pyenv
pyenv --help
pyenv commands
brew install pyenv-virtualenv
pyenv install --list
pyenv install x.x.x #install python with version number
pyenv versions #list current python version
pyenv global system #checkout the python to system version
pyenv virtualenv x.x.x myvenv #create python version with named "myenv"
pyenv virtualenvs #show python virtualenv
pyenv shell myvenv #active python virtualenv
Virtualenv 是一个虚拟环境程序,可以把开发环境隔离。基本思想是建立不同的环境目录,其中装有独立的各类包,甚至也可以是独立的不同版本python程序。
ref: