pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv以后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现。不同Python版本之间的切换也非常简单。pyenv官方地址https://github.com/pyenv/pyenv-installer
#1 安装pyenv,在命令行下键入: $ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
https://www.linuxidc.com/Linux/2018-05/152610.htm#默认安装到当前用户的工作目录下的.pyenv,我们可以查看一下 $ cd ~ $ ls -la #如果安装过git,也可以使用以下安装方式安装 $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv #2 将安装路径写入~/.bashrc 将以下三条语句写入 ~/.bashrc export PATH="/home/zhu/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" $ source ~/.bashrc #配置立刻生效 $ echo $PATH #如果路径第一个结尾是shims则表示成功 /home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin #3 更新一下 $ pyenv rehash
#1.查看pyenv当前支持哪些Python版本
python@ubuntu:~$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
...
#2.列出pyenv中所有可用的python版本
python@ubuntu:~$ pyenv versions
system
3.5.4
* 3.6.4 (set by /home/python/.pyenv/version) # *表示当前使用的3.6.4版本
#3.选择指定的python版本
python@ubuntu:~$ pyenv global 3.5.4 #设置指定的版本
python@ubuntu:~$ python
Python 3.5.4 (default, Mar 29 2018, 11:02:03) #已经切换到了3.5.4
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
切换Python版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。
#4. 删除指定python版本
python@ubuntu:~$ pyenv uninstall 3.5.4
pyenv: remove /home/python/.pyenv/versions/3.5.4? y
python@ubuntu:~$ pyenv versions
system
* 3.6.4 (set by /home/python/.pyenv/version)
安装python
#1.在安装python之前,我们必须要安装python所需要的依赖包,这个必须要安装, 否则安装会失败的:
$ 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
$ pyenv install 3.6.4 -v #-v 以日志模式显示安装过程
#因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,然后再用pyenv安装,下面是可选的安装模式
$ cd ~/.pyenv
$ sudo mkdir cache
$ wget -c http://mirrors.sohu.com/python/3.6.4/Python-3.6.4.tar.xz -P ~/.pyenv/cache/
$ pyenv install 3.6.4 -v
#3.更新pyenv数据库
$ pyenv rehash
#4.列出所安装的python版本
$ pyenv versions
#5.切换python版本
$ pyenv global 3.6.4 #全局切换
$ pyenv local 2.7.9 #和特定目录绑定
#6.验证版本
$ python
注意:
使用pyenv管理python,必须是用pyenv安装的python才行,系统以前有的,需要重新用pyenv安装
使用pip安装第三方模块时会安装到~/.pyenv/versions/xxx下,不会和系统模块发生冲突;
使用pip安装模块后,可能需要执行pyenv rehash更新数据库。
virtualenv本身是一个独立的项目,用以隔离不同项目的工作环境。例如,项目A和项目B都是使用Python 2.7.13,但是,项目A需要使用Flask 0.8版本,项目B需要使用Flask 0.9版本。我们只要组合pyenv和virtualenv这两个工具,就能够构造Python和第三方库的任意版本组合,拥有了很好的灵活性,也避免了项目之间的相互干扰。
virtualenv本身是一个独立的工具,用户可以不使用pyenv单独使用virtualenv。但是,如果你使用了pyenv,就需要安装pyenv-virtualenv插件而不是virtualenv软件来使用virtualenv的功能。
项目主页:https://github.com/yyuu/pyenv-virtualenv
安装virtualenv(可选)
如果是python3以上,安装完python就已经安装了virtualenv,就不用安装了
#安装
$ pip install virtualenv
#或者,如果提示版本不匹配,可以使用--upgrade参数
$ sudo pip install --upgrade virtualenv
使用virtualenv创建项目的虚拟环境
一个项目创建一个virtualenv的虚拟环境,在这个环境中,可以用pip安装项目所需的库,不会影响其他项目。切记一个项目一个虚拟环境,否则可能会发生莫名的错误。
#1.首先创建项目目录
$ sudo mkdir -p myproject/blog
cd myproject/blog
#2.创建项目的虚拟环境
#用法:pyenv virtualenv python版本号 虚拟环境名
$ pyenv virtualenv 3.6.4 env36 #注意版本号必须是已经安装的,否则会报错
#3.切换到虚拟环境
python@ubuntu:/myproject/blog$ pyenv activate env36
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(env36) python@ubuntu:/myproject/blog$ # (env36)表示该项目处于虚拟环境中
#验证
(env36) python@ubuntu:/myproject/blog$ python
Python 3.6.4 (default, Mar 29 2018, 10:33:37)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
#4. 切出虚拟环境
(env36) python@ubuntu:/myproject/blog$ pyenv deactivate env36
使用pip下载库
使用pip下载,会从国外的网站下载,速度超慢,所以要切换pip到国内的镜像源,一般会用psm切换pip的源
1.安装一个软件psm
(bbs36)python@ubuntu:/myproject/blog$ pip install psm
[sudo] python 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法定位软件包 psm
2.psm的使用 以下操作需要在虚拟环境外进行,选择好镜像源后在进入虚拟环境
#1.查看列出pip的镜像源
(bbs36)python@ubuntu:/myproject/blog$ psm ls
pypi https://pypi.python.org/simple/
douban http://pypi.douban.com/simple/
aliyun http://mirrors.aliyun.com/pypi/simple/
#查看当前的镜像源
(bbs36)python@ubuntu:/myproject/blog$ psm show
Current source is douban
#2.选择指定的镜像源
(bbs36)python@ubuntu:/myproject/blog$ psm use douban
Source is changed to douban.
#3 使用pip下载库
(bbs36) python@ubuntu:/myproject/blog$ pip install pymysql
安装很简单,使用easy_install进行安装
sudo easy_install virtualenvwrapper
此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,这个文件里面的注释部分有安装步骤,我们照着操作把环境设置好。
1.创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
2.在~/.bashrc中添加
export WORKON_HOME=$HOME/.virtualenvs
3.在~/.bashrc中添加
source /usr/local/bin/virtualenvwrapper.sh
4.执行
source ~/.bashrc
此时virtualenvwrapper就可以使用了
简单的介绍下使用:
列出虚拟环境列表
workon
也可以使用
lsvirtualenv
新建虚拟环境
mkvirtualenv [虚拟环境名称]
启动/切换虚拟环境
workon [虚拟环境名称]
删除虚拟环境
rmvirtualenv [虚拟环境名称]
离开虚拟环境
deactivate
1. virtualenv -p /usr/bin/python3 虚拟环境
激活:source 虚拟环境/bin/activate
退出虚拟环境: deactivate
2. virtualenvwrapper 虚拟环境 的升级版
配置:.bashrc文件 (当前用户家目录cd ~ ,)
.bashrc_profile (阿里服务器配置文件名)
……
保存 source .bashrc
命令:
mkvirtualenv -p /usr/bin/python3 shopping:创建虚拟环境 shopping
workon shopping: 工作在 online环境 或 从其它环境切换到 shopping 环境
deactivate: 退出终端环境
rmvirtualenv 虚拟环境的名字
3. 可以使用此方式:
sudo apt-get install python3-venv
python3 -m venv 虚拟环境
source 虚拟环境/bin/activate
退出: deactivate
- 注意:
- 使用pyenv管理python,必须是用pyenv安装的python才行,系统以前有的,需要重新用pyenv安装
- 使用pip安装第三方模块时会安装到~/.pyenv/versions/xxx下,不会和系统模块发生冲突;
- 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
source .bashrc
pyenv update 更新
pyenv install –list
强调:原生python3.6 python2.7 python3.7 操作系统
安装对应版本的python
pyenv install 版本号
pyenv versions 查看可以管理的版本有哪些
python 3.7.0
python 3.6.8
python 2.7.5
python 3.7.1
使用版本号:
pyenv global 3.6.8
使用3.6.8设置虚拟环境:
pyenv virtualenv 3.6.8 虚拟环境
进入虚拟环境:
pyenv activate 虚拟环境名字
略微有一点乱.
退出:
pyenv deactivate 虚拟环境名字