早先听说python的时候已经是2.x和3.x并存了,据说3.x还不兼容2.x,想着这高版本连自己的旧版本都不兼容,这格局应该也发展不咋地.

时间是把杀猪刀,机器学习这个神奇的东西最终把这门语言再次推向了高潮,最神奇的是连运维都要和机器学习沾边,美其名:AiOps.这不行啊,不学习一下机器学习都跟不上运维的发展趋势了,于是机器学习没学咋地,python倒是比较溜了.

学python一般都系统自带2.7,但对于我这半道入门的选手,实在没必要卡在2.x系列.于是多版本python管理是要玩溜的第一步.今天我们就一起学习一下python处理管理工具

pyenv安装

设置环境变量:

两种Shell,bash用第一种,我是zsh所以我用第二种

vim ~/.bashrc

export PYENV_ROOT="$HOME/.pyenv"

export PATH="$PYENV_ROOT/bin:$PATH"

eval "$(pyenv init -)"

$ source ~/.bashrc

或者

$ vi ~/.zshrc:

export PATH="/root/.pyenv/bin:$PATH"

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

然后同样激活上面的配置:

$ source ~/.zshrc

现在我们就可以使用pyenv了:

pyenv versions

system (set by /Users/rainbird/.pyenv/version)

3.7.3

3.7.5

3.8.2

星号表示当前正在使用的Python版本。

正常应该显示空吧?我上面列出来是我本地使用的版本(看看,都低于3.7吧)

查看所有可安装的Python版本:

pyenv install -l

安装与卸载:

pyenv install 3.7.3 # 安装python3.7.3

pyenv uninstall 3.7.3 # 卸载python3.7.3

设置python版本

对所有的Shell全局有效,会把版本号写入到~/.pyenv/version文件中

pyenv global 3.7.3

只对当前目录有效,会在当前目录创建.python-version文件

pyenv local 3.7.3

只在当前会话有效

pyenv shell 3.7.3

重置版本设置

只有 pyenv shell 和 pyenv local 命令有--unset参数

pyenv shell --unset

pyenv local --unset

常见问题:

下载过慢

pyenv install执行以后,由于使用下载源码包使用的官方地址,很大概率会卡在第一步的下载,这时候我一般会选择使用sohu源,将源文件下载到pyenv的cache目录,然后再执行pyenv install.

以3.8.2为例

export v=3.8.2;wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

各种找不到问题一步解决

apt-get install build-essential zlib1g-dev libffi-dev libbz2-dev libreadline-dev libssl-dev libsqlite3-dev -y

找不到C编译器

configure: error: no acceptable C compiler found in $PATH

apt-get install build-essential -y

找不到zip模块

zipimport.ZipImportError: can't decompress data; zlib not available

apt-get install zlib1g-dev -y

找不到ctypes

ModuleNotFoundError: No module named '_ctypes'

apt-get install libffi-dev

bz2扩展未编译

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?

apt-get install -y libbz2-dev libreadline-dev

readline扩展未编译

WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?

apt-get install -y libbz2-dev libreadline-dev

ssl扩展未编译

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

apt-get install libssl-dev -y

sqlite3未编译

WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?

apt-get install libsqlite3-dev -y

相关博文

python多环境管理_Python多版本环境管理之pyenv相关推荐

  1. python 切换环境_python多环境切换及pyenv使用过程详解

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 下载如下报错,则安装nss ...

  2. python虚拟环境中文件分部_Python之虚拟环境管理

    Python本身有很多个版本,第三方的Python包又有很多可用的版本,所以经常会遇到下面的问题: 运行不同的Python程序,需要使用不同版本的Python(2.x或3.x). 在同一中Python ...

  3. python两个基本的库管理工具_Python多版本共存管理工具之pyenv

    Table of Contents 经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此 ...

  4. python版本之间的区别_Python各版本之间的区别

    Python各版本之间的区别 发布时间:2020-06-17 14:22:08 来源:亿速云 阅读:161 作者:鸽子 Python发展至今有哪些版本和各版本的区别是: 一.系统区别: 1.Downl ...

  5. anaconda下载的python在哪_python包管理器anaconda介绍安装和使用

    在Python中,安装第三方模块,是通过包管理工具pip完成的.用pip一个一个安装费时费力,还需要考虑兼容性.我们推荐直接使用anaconda,这是一个基于Python的数据处理和科学计算平台,它已 ...

  6. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  7. python查看安装包的版本scipy,numpy,matplotlib等

    查看python的版本很简单: python -V or python --version 查看python安装的宏包版本,以scipy为例,其他包一样 先进入python里,即在终端中输入pytho ...

  8. Python多版本共存之pyenv

    2019独角兽企业重金招聘Python工程师标准>>> 经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2. ...

  9. python正则表达式操作指南_Python正则表达式操作指南

    原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...

最新文章

  1. SparkSQL和Hadoop(面向数据科学家和大数据分析师)
  2. qt LNK2019 无法解析的外部符号
  3. 进程间共享内存(信号量实现同步)
  4. 架构师成长之路(内附推荐书籍)
  5. 发布Disruptor 3.0.0
  6. JVM基础系列第10讲:垃圾回收的几种类型
  7. java war包更新 部署_关于Linux系统下基于Tomcat部署和升级war包的详细过程
  8. 【05】AngularJS 指令
  9. 五、BD09(百度坐标系)
  10. NX/UG二次开发—CAM—获取、修改程式的切削参数
  11. Blogspot.com再次解封
  12. 利用人性做大闸蟹,给予客户特殊的身份优越感,思维决定财富!
  13. Flutter 扩展NestedScrollView (一)Pinned头引起的bug解决
  14. Kali Linux安装dvwa本地shentou测试环境
  15. STL之lower_bound,upper_bound二分查找函数 结构体
  16. Android中实现平铺图片
  17. Memcached管理与Redis
  18. PermissionX 1.6发布,支持Android 12,可能是今年最大的版本升级
  19. python归一化和反归一化_python:什么是归一化以及怎么做归一化?
  20. [附源码]java毕业设计药品管理系统

热门文章

  1. linux 强行安装软件,Linux下强制不检测依赖安装VNC
  2. linux操作系统源码分析,linux操作系统源代码详细分析.doc
  3. Android 屏幕适配解决方案汇总
  4. 硬件服务器processor是什么,服务器硬件检测(采用mcelog)
  5. java 字符串截取_java截取字符串,截串,substring和split,分割字母和数字,正则缝隙...
  6. 基于JAVA+SpringMVC+MYSQL的社区交友平台
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的二手房交易系统
  8. 服务器维护家电需要电工证吗,物业电工需要电工证吗
  9. PHP - 5.4 Array dereferencing 数组值
  10. 支付宝Android接口4.0以上报错Failure calling remote service