python学习过程中,不可避免会遇到python2和python3版本管理的问题。后期项目开发中,也希望每个项目有独立的开发环境,避免各项目之间的干扰。因此,本编主要讲python的多版本管理。

pyenv

pyenv管理工具,它可以虚拟出一套完整的于系统环境隔离的python环境,然后在这个环境中安装你需要的python版本,便可以解决同时使用不同版本python环境的需求。

安装

##  MAC 安装
brew install pyenv

非mac系统,推荐用一键安装脚本

##  确保已经安装好git,如果没有,请自行安装好git
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

配置环境变量

在 ~/.bash_profile里增加如下内容,注意:不同的系统环境配置文件不同。

export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

然后,source一下。 source ~/.bash_profile

pyenv 命令

  • local命令 local命令切换当前目录及其子目录的Python版本, 可以通过删除 .python-version恢复默认Python版本
  • global命令 global名切换全局默认Python版本 永远不要使用global命令
  • virtualenv命令 创建虚拟环境 pyenv virtualenv $bash_version $name

示例:

进入magedu目录,指定python的版本为3.5.2     
[root@localhost magedu]# pyenv local 3.5.2
## 里面就是版本号   删除此文件可以恢复版本
[root@localhost magedu]# vim .python-version
## 查看当前python的版本   
[root@localhost magedu]# python -V
Python 3.5.2
## 创建一个名为magedu的虚拟环境,相当于一个快捷方式
[root@localhost ~]# pyenv virtualenv 3.5.2 magedu
[root@localhost magedu]# pyenv version
system (set by /root/.pyenv/version)
[root@localhost magedu]# pyenv local magedu 
(magedu) [root@localhost magedu]# pyenv version
magedu (set by /root/magedu/.python-version)

pipenv

pipenvPython.org官网最新推荐的包管理工具,它能够帮助我们不必建立虚拟环境的情况下非常容易地安装和管理依赖。项目地址:https://github.com/pypa/pipenv

安装

##  MAC 安装
brew install pipenv
## 非mac系统,可以直接用pip安装
pip install pipenv
## 配置环境变量,在.bashrc or .bash_profile文件中添加
eval "$(pipenv --completion)"

使用

进入项目目录,初始化环境pipenv install,就会在项目目录下生成PipfilePipfile.lock两个文件。其中pip源,安装的包,python版本等信息都记录在Pipfile文件中,所以如果修改pip源非常简单。

## pipenv 换源
sed -i s/pypi.python.org/pypi.doubanio.com/g Pipfile

install命令前面可以添加-–two-–three,它分别使用Python 2或3来初始化你的项目。 否则将使用默认版本的Python。 其他命令:

check      检查安全漏洞
graph      显示当前依赖关系图信息
install    安装虚拟环境或者第三方库
lock       锁定并生成Pipfile.lock文件
open       在编辑器中查看一个库
run        在虚拟环境中运行命令
shell      进入虚拟环境
uninstall  卸载一个库
update     卸载当前所有的包,并安装它们的最新版本

安装python

  • 安装编译工具 yum -y install gcc make patch

  • 安装依赖 yum -y install gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel

  • pyenv可安装指定版本的python,命令pyenv install 3.5.2。但由于默认从国外的源下载,所以很慢,可直接下载好指定python版本的包,然后放到特定目录下安装会快很多。 将安装包放到~/.pyenv/cache/目录

    mkdir -p ~/.pyenv/cache/
    wget -c http://7d9qvq.com1.z0.glb.clouddn.com/Python-3.5.2.tgz -O ~/.pyenv/cache/Python-3.5.2.tar.gz
    pyenv install 3.5.2
    

    编译安装

    这里只给出命令

    wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
    xz -d Python-3.6.4.tar.xz
    tar xf Python-3.6.4.tar
    cd Python-3.6.4
    ./configure prefix=/opt/python3
    make && make install
    ln -s /opt/python3/bin/python3.6 /usr/bin/python3
    

修改pip的源

pip的默认源很慢,这里将pip的源换成了阿里源

  • 创建目录 mkdir ~/.pip
  • 编辑 ~/.pip/pip.conf, 输入一下内容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com

jupyter

Jupyter Notebook是一个交互式笔记本,用来做测试和学习非常方便。

  • 安装 pip install jupyter

  • 使用

    jupyter notebook --ip=0.0.0.0 --no-browser  ##启动一个不启用浏览器的jupyter服务,监听所有端口
    用本机输入ip访问:192.168.10.105:8888     ##不能访问检查防火墙,本机直接关闭防火情
    systemctl stop firewalld     ##关闭防火墙
    systemctl disable firewalld.service     ##禁止firewall开机启动