暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Centos7安装python3.6与python2.7共存(详细不破坏yum版)

IT敢客 2018-08-31
263

       说到要安装 python3.6,是因为 python2.7 的维护周期到 2020 年就结束了。所以现在越来越多的 python 从业者都开始慢慢转向 python3 了,而很可惜的是,现在许多 linux 系统还是自带的 python2.6 或者 python2.7!这里面有很大一部分原因是 yum 导致的!所以既要保持 yum 不出问题,又想使用 python3,就只能让 python3 和 python2 共存了!网上也有许多安装方法,但是或多或少有点问题。所以我总结了一下最详细的又最安全的安装方法。

       1、安装 python3.6 可能使用的依赖

  1. yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

       2、安装 python3.6

下载 python3.6 编译安装 ,到 python 官网下载https://www.python.org ,下载最新版源码,使用 make altinstall,如果使用 make install,在系统中将会有两个不同版本的 Python 在/usr/bin/目录中。这将会导致很多问题,而且不好处理。

  1. wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

  2. mkdir /usr/local/python3

  3. tar -xzvf Python-3.6.6.tgz

  4. cd Python-3.6.6

  5. ./configure --prefix=/usr/local/python3 --enable-optimizations

  6. make

  7. make altinstall

以下说明 python3.6 的目录

  1. python3.6 程序的执行文件:/usr/local/python3/bin/python3.6

  2. python3.6 应用程序目录:/usr/local/python3/lib/python3.6

  3. pip3 的执行文件:/usr/local/python3/bin/pip3.6

  4. pyenv3 的执行文件:/usr/local/python3/bin/pyenv-3.6

3、更改 python 的链接

  1. cd/usr/bin

  2. cp python2.7{,.bak}

  3. cp pip2.7{,.bak}

  4. ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

  5. ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

  6. ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip

4、修改 yum 等依赖 python2 的执行文件

主要有这几个文件一定要修改,其他需要用的时候在修改即可。

  1. cd /usr/bin

  2. yum yum-config-manager yum-debug-restore yum-groups-manager yum-builddep yum-debug-dump yumdownloader firewall-cmd

  3. /usr/libexec/urlgrabber-ext-down

  4. 更改以上文件头为

  5. #!/usr/bin/python 改为 #!/usr/bin/python2

其实还有许多文件要修改,当需要用的时候在修改吧。用下面的命令可以看出许多都是依赖原先 python2 的。

  1. cd /usr/bin

  2. grep -ir '/usr/bin/python' *|grep -v python2.7|grep -v Binary

这里就不一一列举了!


       接下来额外讲一点 python 虚拟环境的事,为啥需要 python 虚拟环境呢,因为往往因为不同开发需要不同的 python 环境或者不同的 python 依赖包环境,有的需要安装 django,有的只要 scrapy,有的只做运维用等等,这样混在一起就可能比较麻烦,尤其是同一个依赖包不同的版本的问题。为了解决这个问题,python 虚拟环境就非常的方便,可以针对的不同的需求来建立多个 python 虚拟环境,每个需求运行在单独的虚拟环境中互不干扰。好了,接下来说说怎么安装 python 虚拟环境吧。

virtualenv

virtualenv 是一个可以在同一计算机中隔离多个 python 版本的工具。

安装:

  1. pip install virtualenv

使用方法

1. 创建环境
  • virtualenv [新环境名]
     :这会再当前目录下创建一个新环境目录

  • 可使用 virtualenv –help 来查看如何使用。可以使用参数 --python=/usr/bin/python3
     来创建一个已经安装的的 Python 环境。

2. 使用环境
  • 切换到新环境目录

  • 执行:source ./bin/activate
     来激活环境,激活后在命令行的前面会出现新环境名称

  • 接下来可使用 pip 命令安装新环境需要的各种包。(pip 命令在创建新环境时自带)

3. 退出虚拟环境
  • deactivate

  • 如果要删除虚拟环境,只需退出虚拟环境后,删除对应的虚拟环境目录即可。不影响其他环境。

4. 注意事项
  • 如果没有启动虚拟环境,系统也安装了 pip 工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc 文件中加上:export PIP_REQUIRE_VIRTUALENV=true

  • 或者让在执行 pip 的时候让系统自动开启虚拟环境:export PIP_RESPECT_VIRTUALENV=true

virtualenvwrapper

virtualenvwrapper 是 virtualenv 的扩展管理包,用于更方便管理虚拟环境,它可以做:

  1. 将所有虚拟环境整合在一个目录下

  2. 管理(新增,删除,复制)虚拟环境

  3. 切换虚拟环境

安装

pip install virtualenvwrapper

使用方法

1. 初始配置

默认 virtualenvwrapper 安装在/usr/local/bin 下面,实际上需要运行 virtualenvwrapper.sh 文件才行;所以需要先进行配置一下:


    • 创建虚拟环境管理目录: mkdir env/

    • 在~/.bash_profile 中添加行:

  1. # load virtualenvwrapper for python (after custom PATHs)

  2. venvwrap="virtualenvwrapper.sh"

  3. /usr/bin/which -a $venvwrap

  4. if [ $? -eq 0 ]; then

  5.    venvwrap=`/usr/bin/which $venvwrap`

  6.    source $venvwrap

  7. fi

  8.  

  9. # User specific environment and startup programs

  10. PATH=$PATH:$HOME/bin

  11. export PATH

  12. export WORKON_HOME=/env/.virtualenvs

  13. export PROJECT_HOME=/env/workspace

  14. source /usr/local/python3/bin/virtualenvwrapper.sh

  15. export PIP_REQUIRE_VIRTUALENV=true

  • 启动 virtualenvwrapper: source ~/.bash_profile

2. 使用方法

所有的命令可使用:virtualenvwrapper --help
 进行查看,这里列出几个常用的:

  • 创建基本环境:mkvirtualenv [环境名]

  • 删除环境:rmvirtualenv [环境名]

  • 激活环境:workon [环境名]

  • 退出环境:deactivate

  • 列出所有环境:workon
     或者 lsvirtualenv -b

配上我的别名设置:

  1. # virtualenv

  2. alias vte='virtualenv'

  3. alias mkvte='mkvirtualenv'

  4. alias deact='deactivate'

  5. alias rmvte='rmvirtualenv'

所有命令都可在后面使用 --help
 参数查看具体用法!Enjoy it !

还有什么问题的就靠各位网友继续发现了。


文章转载自IT敢客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论