最近换了mac的电脑,之前一直是在ubuntu下进行python的学习的,ubuntu下可以很方便的搭建python的独立环境,所以想在mac上也能使用到python的独立环境。网上找了一些资料以后发现在mac操作起来比在ubuntu要麻烦一点,所以对整个操作进行了一个整理。
首先查看一下本机系统自带的python版本,打开一个新的命令行工具,直接输入python
就可以进入python的交互环境,并且会打印出python的版本,我的电脑上自带的python版本是2.7.10。
然后使用pip install pyenv
安装pyenv
,在linux里,最新的pyenv已经集成了virtualenv,根据网上找到的一些资料说,mac还需要安装pyenv-virtualenv,但是我安装的时候提示我本机的依赖太新了,无法安装,所以我推测mac上的最新的pyenv也应该是集成了virtualenv 。安装好了以后,可以在命令行pyenv install -l
查看所有可以通过pyenv安装的python版本,包括了官方的和第三方的,如比较出名的pypy。也可以输入pyenv versions
来查看本机安装了的python的版本,如果没有安装其他的python版本的话只会显示一个system,前面带*
号的是你当前的python版本。这里需要注意的是,这里查看到的只是通过pyenv安装的python版本。
接下来就可以安装想要的python版本了,比如我要装一个版本是3.6.1的python,可以在命令行直接输入pyenv install 3.6.1
,这样pyenv就会自动安装,安装不同的版本只需要在install
后面写出来就可以了,但是一定要是pyenv install -l
列出来了的python版本。安装的等待时间可能会有点长,取决于自己的网速,当然也可能碰上网络抽风一直装不上的情况,这只能是多试几次了。
安装好了以后再使用pyenv versions
命令可以看一下最近的本机通过pyenv安装的python列表,这个时候应该已经添加了你刚才安装的python版本了,可以使用pyenv global xxx
来切换当前本机的python版本,但是不推荐这样做,因为这样做还是不利于独立管理每个项目的python版本。
在使用virtualenv
创建新的python独立环境之前,还有一步操作需要做,就是设置好virtualenv的环境变量,在命令行内输入cd ~
来进入到当前用户的根目录,在.bashsrc或者.bash_profile文件中添加
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
这两行shell命令,如果没有.bashsrc或者.bash_profile文件的话,可以用touch .bashsrc
或者touch .bash_profile
来新建这个文件,然后使用open .bashsrc
或者open .bash_profile
来打开文件,将之前的命令复制进去之后保存就可以了。
然后就可以通过virtualenv来创建独立的python环境了,命令的格式是pyenv virtualenv python版本 独立环境的名称
,比如我要新建一个基于我刚才安装的3.6.1的环境,可以在命令行中输入以下的代码pyenv virtualenv 3.6.1 env361
,稍等一会以后就会提示创建成功。
关于如何使用创建好的独立环境,可以直接在命令行输入pyenv activate env361
来激活环境,这时可以看到命令行的显示会增加一个前缀(env361)
,这时在命令行输入python
,可以看到显示的python版本已经是3.6.1了。如果想要退出这个独立环境,在命令行输入pyenv deactivate
就可以直接退出了。
更多的命令和使用方法,可以通过pyenv -h
和pyenv commands
来查看。
在实际的项目开发中可能会使用到不同的python版本,通过pyenv来使不同项目的python版本独立是一个很好的解决方法。