python多环境管理_Python多版本环境管理之pyenv
早先听说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相关推荐
- python 切换环境_python多环境切换及pyenv使用过程详解
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash 下载如下报错,则安装nss ...
- python虚拟环境中文件分部_Python之虚拟环境管理
Python本身有很多个版本,第三方的Python包又有很多可用的版本,所以经常会遇到下面的问题: 运行不同的Python程序,需要使用不同版本的Python(2.x或3.x). 在同一中Python ...
- python两个基本的库管理工具_Python多版本共存管理工具之pyenv
Table of Contents 经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此 ...
- python版本之间的区别_Python各版本之间的区别
Python各版本之间的区别 发布时间:2020-06-17 14:22:08 来源:亿速云 阅读:161 作者:鸽子 Python发展至今有哪些版本和各版本的区别是: 一.系统区别: 1.Downl ...
- anaconda下载的python在哪_python包管理器anaconda介绍安装和使用
在Python中,安装第三方模块,是通过包管理工具pip完成的.用pip一个一个安装费时费力,还需要考虑兼容性.我们推荐直接使用anaconda,这是一个基于Python的数据处理和科学计算平台,它已 ...
- Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习
Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...
- python查看安装包的版本scipy,numpy,matplotlib等
查看python的版本很简单: python -V or python --version 查看python安装的宏包版本,以scipy为例,其他包一样 先进入python里,即在终端中输入pytho ...
- Python多版本共存之pyenv
2019独角兽企业重金招聘Python工程师标准>>> 经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2. ...
- python正则表达式操作指南_Python正则表达式操作指南
原文作者:A.M. Kuchling (amk@amk.ca) 翻译人员:FireHare 校对人员:Leal 适用版本:Python 1.5 及后续版本 摘要 本文是通过Python的 re 模块来 ...
最新文章
- SparkSQL和Hadoop(面向数据科学家和大数据分析师)
- qt LNK2019 无法解析的外部符号
- 进程间共享内存(信号量实现同步)
- 架构师成长之路(内附推荐书籍)
- 发布Disruptor 3.0.0
- JVM基础系列第10讲:垃圾回收的几种类型
- java war包更新 部署_关于Linux系统下基于Tomcat部署和升级war包的详细过程
- 【05】AngularJS 指令
- 五、BD09(百度坐标系)
- NX/UG二次开发—CAM—获取、修改程式的切削参数
- Blogspot.com再次解封
- 利用人性做大闸蟹,给予客户特殊的身份优越感,思维决定财富!
- Flutter 扩展NestedScrollView (一)Pinned头引起的bug解决
- Kali Linux安装dvwa本地shentou测试环境
- STL之lower_bound,upper_bound二分查找函数 结构体
- Android中实现平铺图片
- Memcached管理与Redis
- PermissionX 1.6发布,支持Android 12,可能是今年最大的版本升级
- python归一化和反归一化_python:什么是归一化以及怎么做归一化?
- [附源码]java毕业设计药品管理系统
热门文章
- linux 强行安装软件,Linux下强制不检测依赖安装VNC
- linux操作系统源码分析,linux操作系统源代码详细分析.doc
- Android 屏幕适配解决方案汇总
- 硬件服务器processor是什么,服务器硬件检测(采用mcelog)
- java 字符串截取_java截取字符串,截串,substring和split,分割字母和数字,正则缝隙...
- 基于JAVA+SpringMVC+MYSQL的社区交友平台
- 基于JAVA+SpringMVC+Mybatis+MYSQL的二手房交易系统
- 服务器维护家电需要电工证吗,物业电工需要电工证吗
- PHP - 5.4 Array dereferencing 数组值
- 支付宝Android接口4.0以上报错Failure calling remote service