最近正在重头梳理Python的基础知识,为了更好地使用Python进行开发,防止发生版本混乱(不同的第三方库有可能因为Python版本不兼容而报错),所以需要使用pyenv进行版本管理。
通常来说,安装一个开源程序需要自己编译和下载相关依赖包,但是作者提供个一个简易的安装器,只需要一条命令即可搞定安装。
$ curl https://pyenv.run | bash
pyenv.run重定向到github内的安装脚本,上面这句命令等同于
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
如果要升级pyenv:
$ pyenv update
卸载pyenv(pyenv安装的默认路径为~/.pyenv,如果自定义安装路径则删除自定义文件夹):
$ rm -fr ~/.pyenv
并删除.bashrc下面的环境变量:
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
遇到的问题
输入:
pyenv --version
1.报错:command ‘pyenv’ Not Found
解决:检查.bashrc中有没有添加pyenv的环境变量信息,没有则添加进去(使用其他shell,如zsh的,则在.zshrc中添加。)
2.找不到zlib包(缺少依赖)
解决:输入下面命令安装
$ sudo apt-get install zlib1g-dev
pyenv install --list 查看python版本
pyenv install 3.6.1 安装对应版本python
pyenv local 3.6.1 当前目录下python环境指定为3.6.1
pyenv versions 查看系统中已安装的python版本
pyenv 解决的是同一个系统中不同版本的 python 并存的问题,而 pyenv-virtualenv 解决的是不同项目所依赖的软件包之间可能产生冲突的问题。
pyenv-virtualenv安装方法:
pip install pyenv-virtualenv
pyenv virtualenv 3.4.9 env349 创建python3.4.9的虚拟环境
pyenv activate env349 启用python3.4.9环境
pyenv deactivate 退出虚拟python环境
至此,Pyenv+virtualenv版本管理系统搭建完成,可以在一台主机上互不干扰的使用不同版本的python+第三方库的组合了
补充:最近在自己虚拟机上安装时遇到了新的问题,记录下
CentOS7下使用pyenv安装多个版本的python时会提示缺少依赖环境
这是因为有些依赖包没有安装,执行以下命令安装
yum install readline readline-devel readline-static -y yum install openssl openssl-devel openssl-static -y yum install sqlite-devel -y yum install bzip2-devel bzip2-libs -y
再安装就成功了
0.查看所有的python版本(pyenv管理的所有版本)
$ pyenv versions
system (set by /Users/xxx/.pyenv/version)
表示当前正在使用的版本,system表示用的是系统python版本
1.安装各种所需要的依赖
sudo apt-get install libc6-dev gcc
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
2.安装 python 2.7.14(时间可能稍微有点长)
pyenv install 2.7.14 -v
3.安装 python 3.6.4(时间可能稍微有点长)
pyenv install 3.6.4 -v
4.更新pyenv的数据库
pyenv rehash
pyenv versions
pyenv global 3.6.4
注:如果版本没有切换成功,需要在~/.bash_profile 文件中添加如下两句话
然后切换版本
export PYENV_ROOT=~/.pyenv
export PATH=$PYENV_ROOT/shims:$PATH
然后查看成功
:~$ pyenv versions
system
* 3.6.4 (set by /home/sdas/.pyenv/version)
1.使用pip安装virtualenv
pip install virtualenv
2.创建你的python虚拟环境(3.6.4是你pyenv数据库中存在的版本,env36是你虚拟环境的名字,可以任意起)
pyenv virtualenv 3.6.4 env36
3.切换到你的虚拟环境
pyenv activate env36
如果命令行中有(env36),如(env36) yfx@bo:~$,说明你处于env36的虚拟环境中
4.退出虚拟环境
pyenv deactivate