Centos7环境下安装python3以及相关问题总结

本文详细介绍如何在CentOS7系统上安装Python3.6,并配置环境变量,实现与Python2.7共存。此外,还介绍了如何安装pip工具,以及使用virtualenv和virtualenvwrapper创建和管理Python虚拟环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

centos7自带python2.7.5版本,但需要使用的python3的瓜瓜们就需要自己安装一个python3的环境。温馨提示尽量不要动系统自带的python,否则会带来不可预知的后果,至于是什么样的后果,想知道的同学可以以身试法,然后给各位博友们上图为证。(PS:可以在docker上开一个centos容器来验证一下)

二、步骤

  • 源码安装python3
    • 下载二进制文件
    • 解压
    • 配置安装路径
    • 编译&&安装
    • 添加环境变量
  • 使用virtualenv虚拟环境
    • 目的:
      • 为了隔离python2和python3,更好的管理对应python版本的依赖
      • 给每个项目创建虚拟环境,独立管理各项目的依赖,互不干扰独立工作
    • 安装virtualenv
    • 安装virtualenvwrapper

三、详细安装过程

1、 安装python3.6

  • 安装前准备环境

      	yum -y install zlib zlib-devel gcc
      	yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
    
    • 下载二进制文件(我安装的版本是python3.6.4)

        yum -y install zlib zlib-devel gcc
        wget --no-check-certificate https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
      

      安装其他版本只需要修改url中的版本数字即可,如:wget --no-check-certificate https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

    • 解压&&配置安装路径

        tar -zxvf Python-3.6.4.tar.xz
        cd Python-3.6.4/
        ./configure --prefix=/usr/local/python3 --enable-optimizations
        make && make install	
      
    • 添加永久环境变量

      • /etc/profile中添加以下内容:
        • export PATH="$PATH:/usr/local/python3/bin"
      • 永久添加环境变量
        • vi /etc/profile然后写入export PATH="$PATH:/usr/local/python3/bin"
        • 或者使用命令 echo "export PATH=${PATH}:/usr/local/python3/bin" >> /etc/profile写入
      • 添加完成后 source /etc/profile,使变量生效
      • 临时添加环境变量为 export PATH="$PATH:/usr/local/python3/bin" 终端结束后环境变量失效

2、使用python3打开python3 shell环境

  • 修改/usr/bin/python3链接

      	# ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
      	# ln -sv /usr/local/python3/bin/pip3 /usr/bin/pip3
    
  • 到此为止,在终端输入python可以打开python2.x,python3打开python3.x。pip3可用,pip不可用。可以使用pip3 -V查看版本,pip python2的版本在下一节centos7安装pip中介绍。

  • 以下部分的内容,如果不想使用python命令打开python3的shell可以忽略

3、使用python打开python3

  • 修改/usr/bin/python链接,使得可以使用python打开python3

      	# cd/usr/bin
      	# mv python python.bak
      	# ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
    
  • 将python2.7修改成python3后,yum命令会报错(如果解决办法中的两个步骤没完成的话,安装pip的时候会报错!)

    • yum报错:
    •   File "/usr/bin/yum", line 30
        except KeyboardInterrupt, e:
                        ^
        SyntaxError: invalid syntax
      
    • pip报错:bash: pip: command not found
  • 解决办法:

    • 修改yum配置文件,将python版本指向以前的旧版本

      输入# vi /usr/bin/yum,进入yum文件中,把#!/usr/bin/python修改成#!/usr/bin/python2.7

    • 修改urlgrabber-ext-down文件,更改python版本
      输入# vi /usr/libexec/urlgrabber-ext-down,进入文件中把#!/usr/bin/python修改成#!/usr/bin/python2.7

    • 或者将pip软连接到pip3(pip,pip3使用的都是pip3):

      • ln -sv /usr/local/python3/bin/pip3 /usr/bin/pip
    • 重新安装pip yum -y install epel-release(pip对应python2,pip3对应python3)

      • 执行成功之后,再次执行yum install python-pip
      • 对安装好的pip进行升级 pip install --upgrade pip (注意是两个短杆)

四、 安装pip工具

  • yum -y install epel-release
  • 执行成功之后,再次执行yum install python-pip
  • 对安装好的pip进行升级 pip install --upgrade pip (注意是两个短杆)
    注意:
    • 以上是python2.7的pip,python3 的/usr/bin 目录下有pip3创建pip3的软链接即可
    • ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    • 配置完成后pip、pip3均可用

3、 -bash: /usr/bin/yum: /usr/bin/python: 坏的解释器: 没有那个文件或目录

将 /usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 文件的首行 #! /usr/bin/python 改为 #! /usr/bin/python.bak
/usr/bin/yum和/usr/libexec/urlgrabber-ext-down文件的首行的Python应指向Python2.7.5版本的位置
在我的环境中“#! /usr/bin/python.bak”是我的Python2.7.5的位置。

五、使用python虚拟环境

  1. 安装 pip install virtualenv

  2. 创建

    • virtualenv 名称创建默认版本的虚拟环境
    • virtualenv --python=/usr/local/python3/bin/python3.6 myvenv
  3. 启动

    • source /myvenv/bin/activate
  4. 退出

    • deactivate
  5. 安装virtualenvwrapper

    • pip install virtualenvwrapper
    • windows环境下:pip install virtualenvwrapper-win
  6. 配置virtualenvwrapper环境变量

    • vim ~/.bashrc打开文件,写入

        export WORKON_HOME=~/.virtualenvs
        source /usr/local/python3/bin/virtualenvwrapper.sh
      
    • source ~/.bashrc

  7. 使用mkvirtualenv 创建虚拟环境

    • mkvirtualenv test2

    • 第一次安装完成后需要,先设置一个变量WORKON_HOME,它将作为所有环境的前缀,并且source /usr/local/bin/virtualenvwrapper.sh

        mkdir -p $WORKON_HOME  
        export WORKON_HOME=~/Envs  
        source /usr/local/bin/virtualenvwrapper.sh
      
    • **注意:**同时安装了python2.7跟python3.6创建虚拟环境时有可能报错,则手动进入python3.6的安装路径/bin下,执行source virtualwrapper.sh,然后创建

  8. virtualenvwrapper其他操作

    • 创建环境
      • 默认版本环境mkvirtualenv env1
      • 指定版本环境mkvirtualenv --python=/usr/local/python3/bin/python3.6 myvenv
    • 切换环境
      • workon env1
      • workon env2
    • 列出已有环境
      • workon
    • 退出环境
      • deactivate
  9. 创建project:项目将创建到PROJECT_HOME目录下,实际上相当于在某个目录下,建了一个环境。

    • mkproject
    • 注意: 该命令要在 ~/.bashrc中写入export PROJECT_HOME=xxx 才生效
  10. 环境迁移:

    • pip freeze >requirments.txt
    • pip install -r requirements.txt
  11. 在docker中安装python3,存在以下报错

    • vi ~/.bashrc 写入以下内容

        export WORKON_HOME=~/Envs
        VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
        VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
        source /usr/bin/virtualenvwrapper.sh
      
    • 错误信息:

        ERROR: virtualenvwrapper could not find virtualenv in your path
      
      • 出现这种错误,是因为 virtualenv 这个基础依赖包被安装在默认 Python 目录下,就需要做一个软连接 ln -s

      • 直接在~/.bashrc文件中加入以下配置

          export WORKON_HOME=~/Envs
          VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
          VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
          source /usr/bin/virtualenvwrapper.sh
        
      • 出现以上错误时,在shell输入/usr/bin/virtualenv,如果没有报错,则不是软连接的问题

        • yum -y install which安装which后,mkvirtualenv命令可以正常使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值