环境:Macbook
MacOS自带的python2.7,在命令行中输入python后会显示2.7版本
如何切换成新版本?
一、修改用户配置环境变量~/.bash_profile
  1. 确定新版本的安装位置,brew info python,/usr/local/Cellar/python/3.6.4_4
  2. 打开配置文件sudo vi ~/.bash_profile
写入
export PATH="/usr/local/anaconda3/bin:$PATH"
export PATH="/usr/local/Cellar/python/3.6.4_4/bin:$PATH"
alias python="/usr/local/Cellar/python/3.6.4_4/bin/python3.6" #创建快捷方式,重命名
  1. 使修改后的文件立即生效source ~/.bash_profile
  2. 当shell类型为zshell时需要修改vi ~/.zshrc,不然重新开启命令终端时会无效
在最后写入source ~/.bash_profile
 
二、修改系统环境变量/etc/paths
  1. 配置:打开sudo vi /etc/paths,写入/usr/local/Cellar/python/3.6.4_4/bin即可,保存并退出:wq!
  2. 重启:source /etc/paths,或是重启命令终端
 
三、通过安装anaconda或Miniconda进行包版本管理
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python
如果把 Python 比作 Linux,那么 Anancoda 就是 CentOS 或者 Ubuntu。它解决了Python开发者的两大痛点。
1、提供包管理,功能类似于 pip,Windows 平台安装第三方包经常失败的场景得以解决。
2、提供虚拟环境管理,功能类似于 virtualenv,解决了多版本Python并存问题。
参考:
步骤:
  1. 安装:brew cask install anaconda
    1. 遇到问题missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun导致安装失败,这是需要安装
  2. 配置:打开sudo vi /etc/paths,写入/usr/local/anaconda3/bin即可,保存并退出:wq!
  3. 重启:source /etc/paths,或是关闭终端重进
 
环境变量配置文件优先级
Mac系统的环境变量,加载顺序为:
a. /etc/profile
b. /etc/paths
c. ~/.bash_profile
d. ~/.bash_login
e. ~/.profile
f. ~/.bashrc
其中a和b是系统级别的,系统启动就会加载,其余是用户接别的。c,d,e按照从前往后的顺序读取,如果c文件存在,则后面的几个文件就会被忽略不读了,以此类推。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
 
 
常用终端命令:
  1. sudo vi /etc/hosts 修改hosts文件
  2. ls -li 查看软连接
  3. which -a git 查看应用安装位置
  4. brew info git 查看brew安装的应用的信息
  5. echo "export PATH=/usr/local/anaconda3/bin:$PATH" >> ~/.bash_profile 将语句添加到配置文件bash_profile中
  6. brew config 查看当前brew信息
  7. echo $PATH 查看单个环境变量
  8. env 查看所有环境变量
  9. set 查看所有本地定义的环境变量
  10. 别名的设置与变量设置方法相同,在不同文件中设置可以使其永久生效或者临时生效,
如:可以在/etc/profile文件中添加 alias ls='ls --color=auto' alise ll='ls -alF' 设置命令ll 和ls
 

python多版本切换的更多相关文章

  1. Linux下python默认版本切换成替代版本

    本文链接自http://www.myhack58.com/Article/48/66/2016/71806.htm 当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Pyt ...

  2. Python不同版本切换

    2016年6月8日更新: 这是我早前写的一篇小文章,其实,后来也没有采用这种方法切换.电脑上安装了多个Python 版本,保证自己经常用的版本加入环境变量外,使用非系统的版本时一般使用 IDE 编辑器 ...

  3. 将Linux下python默认版本切换成替代版本

    本文链接自http://www.myhack58.com/Article/48/66/2016/71806.htm 当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Pyt ...

  4. linux & mac环境python多版本切换与选择

    linux和mac很多地方是相似的,只不过在切换python版本时权限有差异. ====图已补上,O(∩_∩)O~ 1.linux 首先linux内核自带版本是python2.6,但是一般linux ...

  5. Python默认版本切换

    Mac上自带python2.7 版本,但是我又下了一个3.7版本(下载的版本默认安装在 /Library/Frameworks/Python.framework/Versions/3.7/bin/py ...

  6. windows10 conda python多版本切换

    之前为了学习安装了python2.7是通过anaconda2安装的 现在想换用Python3  所以寻找版本并存 可以来回切换的方法 打开命令提示符,记住是命令提示符 不是win10自带的window ...

  7. 在Mac上Python多版本切换

    1.安装Homebrewhttps://brew.sh/index_zh-cn.html 2.通过brew安装pyenv1)命令行输入:$ brew install pyenv(如果一直卡在Updat ...

  8. Mac 上Python多版本切换

    Mac上自带了Python2.x的版本,有时需要使用Python3.x版本做开发,但不能删了Python2.x,可能引起系统不稳定,那么就需要安装多个版本的Python. 1.安装Python3.x版 ...

  9. Mac上实现对Python的版本切换

    最近朋友邀请我帮忙写个比特币自动化交易程序,要求的平台是Okex,用Python写,之前到是自己学过一点自动化交易,不过是MT5的.看了一下Okex提供的API接口,和MT5不一样,它并没有现成的ID ...

随机推荐

  1. 分区命令(大于2TB的分区)

    注意:parted命令在恢复误删除的分区时候,容易失败的几点: (1)只划分一个分区.恢复失败 (2)划分了2个分区,但是没有格式化.直接删除一个分区,恢复也会失败. (3)做删除操作时候,如果同时删 ...

  2. 04.python哈希表

    python哈希表 集合Set 集合,简称集.由任意个元素构成的集体.高级语言都实现了这个非常重要的数据结构类型. Python中,它是可变的.无序的.不重复的元素的集合. 初始化 set() -&g ...

  3. java调用redis的多种方式与心得

    心得: /** * 心得: * 1.连接方式主要有:直连同步,直连事务,直连管道,直连管道事务,分布式直连同步,分布式直连管道, * 分布式连接池同步,分布式连接池管道:普通连接池同步,普通连接池管道 ...

  4. CentOS7 安装mysql并解决安装慢的问题

    0.centOS7 mini版安装及网络配置 //可从我的网盘保存下载,可用虚拟机安装 链接:https://pan.baidu.com/s/10_AHxN0DtJ75s1oFOaaZ3A 密码:ud ...

  5. 服务性能监控系列之Metrics

    Metrics是一个提供服务性能检测工具的Java类库,它提供了功能强大的性能指标工具库用于度量生产环境中的各关键组件性能. 度量类型 Metrics提供了以下几种基本的度量类型: Gauge:用于提 ...

  6. 一个高性能跨平台基于Python的Waitress WSGI Server的介绍!

    对于Python来说,它有很多web框架,常见的有jango.Flask.Tornado .sanic等,比如Odoo.Superset都基于Flask框架进行开发的开源平台,具有强大的功能.在Lin ...

  7. x86-3-段式管理(segmentation)

    x86-3-段式管理(segmentation) 3.1 段式管理概述: 从8086CPU开始,为了让程序在内存中能自由浮动而又不影响它的正常执行,CPU将内存划分成逻辑上的段来给程序使用. x86继 ...

  8. Zookeeper绍二(分布式锁介)

    一.为什么会有分布式锁? 在多线程环境下,由于上下文的切换,数据可能出现不一致的情况或者数据被污染,我们需要保证数据安全,所以想到了加锁. 所谓的加锁机制呢,就是当一个线程访问该类的某个数据时,进行保 ...

  9. vue3路由的使用,保证你有所收获!

    路由变量 有的小伙伴,可能是第一次听见路由变量这个词. 什么是路由变量了,顾名思义就是这个路由地址是动态的,不是固定的. 它的运用场景是哪里呢? 比如说:1.详情页的地址,我们就可以去使用路由变量. ...

  10. Rust 实现一个简单的区块链

    一.背景 近期用 Rust 实现了 Jeiwan/blockchain_go,与原项目相比没有加入新的功能,只是换了一个编程语言实现了一遍,源码放在 Github 上. 开发这个项目,花费了好几个周末 ...