一、pyenv管理不同的python版本
1.下载安装
git clone git://github.com/yyuu/pyenv.git ~/.pyenv  
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc  
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc  
echo 'eval "$(pyenv init -)"' >> ~/.bashrc  
exec $SHELL -l

2.测试是否能用
pyenv install --list

3.安装python之前先安装好依赖库
centos
yum -y install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel

ubantu
apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libsqlite3-dev

4.安转不同版本的python
pyenv install -v 2.7.14
pyenv install -v 3.6.5

Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
Installing Python-3.6.5...
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
Installed Python-3.6.5 to /root/.pyenv/versions/3.6.5

WARNING hai que ji ge bao

[root@localhost app]# yum install readline readline-devel readline-static -y

5.查看已安装的python版本
[root@localhost 下载]# pyenv versions
* system (set by /root/.pyenv/version)
  2.7.14
  3.6.5

6.刷新
[root@localhost 下载]# pyenv rehash

7.切换python版本
[root@localhost 下载]# pyenv global 3.6.5 #设定全局的版本
[root@localhost 下载]# pyenv versions
  system
  2.7.14
* 3.6.5 (set by /root/.pyenv/version)
[root@localhost 下载]# python
Python 3.6.5 (default, Apr 20 2018, 15:00:52)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.

8.设置特定目录的python版本
[root@localhost home]# mkdir py36
[root@localhost home]# cd py36/
[root@localhost py36]# ls
[root@localhost py36]# pyenv local  3.6.5
[root@localhost py36]# pyenv local
3.6.5

全局依旧是2.7
[root@localhost home]# cd /
[root@localhost /]# python -V
Python 2.7.14
[root@localhost /]#

9.删除当前目录下的python版本
方法一
[root@localhost home]# pyenv local --unset
[root@localhost home]# pyenv local
pyenv: no local version configured for this directory
[root@localhost home]# python -V
Python 2.7.14
[root@localhost home]#

方法二
[root@localhost home]# cd py27/
[root@localhost py27]# ls
[root@localhost py27]# pyenv local 2.7.14
[root@localhost py27]# python -V
Python 2.7.14
[root@localhost py27]# ls
[root@localhost py27]# ls -al
总用量 4
drwxr-xr-x. 2 root root 29 4月  20 15:26 .
drwxr-xr-x. 5 root root 98 4月  20 15:19 ..
-rw-r--r--. 1 root root  7 4月  20 15:26 .python-version

[root@localhost py27]# rm -rf .python-version
[root@localhost py27]# ls -a
.  ..

[root@localhost py27]# python local
python: can't open file 'local': [Errno 2] No such file or directory
[root@localhost py27]#

10.python版本切换之后,pip版本也跟着切换
[root@localhost home]# pyenv global 3.6.5
[root@localhost home]# python
Python 3.6.5 (default, Apr 20 2018, 15:00:52)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
[root@localhost home]# pip --version
pip 9.0.3 from /root/.pyenv/versions/3.6.5/lib/python3.6/site-packages (python 3.6)
[root@localhost home]# pyenv global 2.7.14
[root@localhost home]# pip --version
pip 9.0.1 from /root/.pyenv/versions/2.7.14/lib/python2.7/site-packages (python 2.7)
[root@localhost home]#

11.如果想删除python版本,使用uninstall命令即可
pyenv uninstall 2.7.14

二、pyenv-virtualenv插件

pyenv virtualenv 是pyenv的插件,为pyenv设置的python版本提供隔离的虚拟环境,设置虚拟环境后,在这个目录下面安装的第三方库及修改库搜索路径都不会影响其他环境,相当于一个沙盒环境,互相不影响。

1.下载安装
[root@localhost ~]# git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
正克隆到 '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Counting objects: 1979, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 1979 (delta 21), reused 18 (delta 10), pack-reused 1943
接收对象中: 100% (1979/1979), 561.64 KiB | 116.00 KiB/s, done.
处理 delta 中: 100% (1353/1353), done.

2.重新载入环境
[root@localhost ~]# exec $SHELL
pyenv-virtualenv会为pyenv引入一些新的命令,例如 virtualenv/virtualenv-delete 用于创建/删除虚拟环境,virtualenvs用于列出所有的虚拟环境,activate /deactivate用于激活和禁用虚拟环境

3.创建一个虚拟环境
[root@localhost ~]# mkdir venv36
[root@localhost ~]# cd venv36/
[root@localhost venv36]# pyenv virtualenv 3.6.5 env36 #创建一个 Python版本为 3.6.5 的环境, 叫做env36
Requirement already satisfied: setuptools in /root/.pyenv/versions/3.6.5/envs/env36/lib/python3.6/site-packages
Requirement already satisfied: pip in /root/.pyenv/versions/3.6.5/envs/env36/lib/python3.6/site-packages

4.查看可用版本和工作环境
[root@localhost venv36]# pyenv versions
  system
* 2.7.14 (set by /root/.pyenv/version)
  3.6.5
  3.6.5/envs/env36
  env36
[root@localhost venv36]# pyenv virtualenvs
  3.6.5/envs/env36 (created from /root/.pyenv/versions/3.6.5)
  env36 (created from /root/.pyenv/versions/3.6.5)

5.进入/退出虚拟环境,左边的提示符会显示你当前所在的工作环境
[root@localhost venv36]# pyenv activate env36 #激活并进入env36环境, 此时Python版本自动变为3.6.5,且是独立环境
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(env36) [root@localhost venv36]#

(env36) [root@localhost venv36]# pyenv deactivate #离开已经激活的环境
[root@localhost venv36]#

6.不同的虚拟环境下安装不同版本的软件
(env36) [root@localhost /]# pip install flask
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.14.1 click-6.7 flask-0.12.2 itsdangerous-0.24

(env27) [root@localhost /]# pip install flask==0.11
Installing collected packages: itsdangerous, click, Werkzeug, MarkupSafe, Jinja2, flask
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.14.1 click-6.7 flask-0.11 itsdangerous-0.24

7.删除虚拟环境
[root@localhost /]# pyenv virtualenv-delete env27
pyenv-virtualenv: remove /root/.pyenv/versions/2.7.14/envs/env27? y
[root@localhost /]# pyenv virtualenvs
  3.6.5/envs/env36 (created from /root/.pyenv/versions/3.6.5)
  env36 (created from /root/.pyenv/versions/3.6.5)

[root@localhost /]# pyenv virtualenv-delete env36
pyenv-virtualenv: remove /root/.pyenv/versions/3.6.5/envs/env36? y
[root@localhost /]# pyenv virtualenvs
[root@localhost /]#

你也可以在其他虚拟环境目录下面安装 ipython,切换到其他设定的版本目录中无法使用,说明是相互隔离的。

使用pyenv和pyenv-virtualenv插件,可以实现在不同版本之间的切换,相比管理python版本,不但节省时间,也避免工作过程中的互相干扰。

遇到的问题:在pycharm上安装MySQLdb遇到了一个问题,我的环境是centos7.4,python环境是pyenv里面装的py3.6.5,后来发现python3的mysql模块不叫MySQLdb,而是叫pymysql。。。。。。

CentOS7下python工作环境管理的更多相关文章

  1. Linux—CentOS7下python开发环境配置

    CentOS7下python开发环境配置 上一篇博客讲了如何在Centos7下安装python3(https://www.cnblogs.com/zivli/p/9937608.html),这一次配置 ...

  2. EnvironmentError: mysql_config not found问题解决(centos7下python安装mysql-python)

    centos7下python安装mysql-python模块,执行命令: pip install mysql-python 出现报错:EnvironmentError: mysql_config no ...

  3. CentOS7下python虚拟环境

    搭建python虚拟环境 1.我们先创建一个隐藏目录 .virtualenvs,所有的虚拟环境都放在此目录下 :mkdir /root/.virtualenvs 2.安装虚拟环境 确认pip:wher ...

  4. (转)LINUX CENTOS7下安装PYTHON

    LINUX CENTOS7下安装PYTHON 原文:http://www.cnblogs.com/lclq/p/5620196.html Posted on 2016-06-27 14:58 南宫羽香 ...

  5. 第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误,

    第四百零五节,centos7下搭建sentry错误日志服务器,接收python以及Django错误, 注意:版本,不然会报错 Docker >=1.11Compose >1.6.0 通过d ...

  6. Centos7下部署两套python版本并存

    Centos7下部署两套python版本并存   需求说明:centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的 ...

  7. chrome headless+selenium+python+(ubuntu 16.04/centos7) 下的实现

    Ubuntu 16.04 下: 0x01 安装chrome 1 下载源加入系统源列表 sudo wget http://www.linuxidc.com/files/repo/google-chrom ...

  8. 日常工作问题解决:centos7下配置网卡以及查询网卡UUID

    目录 1.配置网卡 1.1 网卡查看命令:ifconfig -a 1.2 网卡配置文件说明 1.3 重启网络服务 2.查看确认网卡UUID 2.1 网卡配置文件正常时 2.2 网卡配置文件不可用或者配 ...

  9. 日常工作问题解决:centos7下使用yum安装软件报yum.pid锁定

    问题描述: 在centos7下使用yum进行软件安装时报yum.pid已经被锁定,如下所示: [root@centos7-129 ~]# yum -y install dhcp 已加载插件:faste ...

随机推荐

  1. bzoj 1179 [Apio2009]Atm 缩点+最短路

    [Apio2009]Atm Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 4290  Solved: 1893[Submit][Status][Dis ...

  2. 单例 ------ JAVA实现

    单例:只能实例化一个对象,使用场景比如打印机. 最推荐的是采用饿汉式:双重校验锁用到了大量的语法,不能保证这些语法在所用场合一定没问题,所以不是很推荐:总之简单的才是最好的,就饿汉式!!! C++ 创 ...

  3. 同一台服务器(电脑)运行多个Tomcat

    同一台电脑运行不能同时运行多个未修改过配置tomcat的原因在于:一台电脑的一个端口只能被一个程序使用,多个tomcat启动会因为端口号号被占用的原因而启动失败. 如果想要在一台电脑上同时运行多个to ...

  4. Android之简易音乐播发器

    布局主要代码之ListView: <span style="font-size:14px;"> <ListView android:id="@+id/m ...

  5. (转)Linux下使Shell 命令脱离终端在后台运行

    转自: http://www.linuxidc.com/Linux/2011-05/35723.htm 方法如下: (1)输入命令: nohup 你的shell命令 & (2)回车,使终端回到 ...

  6. Jmeter 自动化脚本录制-Badboy

    1. Badboy 录制操作(输入URL其余和平常操作一毛一样). 2. 保存结果,并Export to Jmeter,退出保存. 3. 导入已录制好的文件,添加监听器查看结果. 一般的监听器有(查看 ...

  7. 省队集训 Day3 陈姚班

    [题目大意] 给一张网格图,上往下有流量限制,下往上没有,左往右有流量限制. $n * m \leq 2.5 * 10^6$ [题解] 考场直接上最大流,50分.竟然傻逼没看出狼抓兔子. 平面图转对偶 ...

  8. 「6月雅礼集训 2017 Day8」infection

    [题目大意] 有$n$个人,每个人有一个初始位置$x_i$和一个速度$v_i$,你需要选择若干个人来感染一个傻逼病毒. 当两个人相遇(可以是正面和背面),傻逼病毒会传染,求经过无限大时间后,传染完所有 ...

  9. PHP练习4 留言板

    一.要求 二.示例页面 三.网页代码及网页显示 1.denglu.php  登录页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  10. 将四个按钮放入一个父控件的好处:方便移动,只需要改变父控件的y值,就可移动四个按钮

      将四个按钮放入一个父控件的好处:方便移动,只需要改变父控件的y值, 就可移动四个按钮               https://www.evernote.com/shard/s227/sh/78 ...