参考

安装 python3 时,不要覆盖原环境的 python2。因为环境中有些程序是依赖 2 的,比如 yum。直接覆盖是会影响环境的。

最好的是编译安装 python3,执行指令是用 python3 作为指令区别 python(2) 来下指令。

1. 安装依赖

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

如果这一步没做好,后面会对 pip install 安装功能造成影响

2. 下载安装 python3

安装位置看个人喜好,这里假设 /usr/local/python3

  • 下载
# 这个指令执行位置即下载位置
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
  • 解压
tar -zxvf Python-3.6.1.tgz

3. 编译安装

进入解压后目录

cd Python-3.6.1

编译安装,--prefix后路径为安装位置

./configure --prefix=/usr/local/python3
make && make install

如果后面执行时出行错误,显示缺少某个模块时,要重新执行【编译安装】步骤

4. 建立 python3 的软链

这一步是为了区分 python3 和 python

如果不执行这一步,后面下 python3 指令时,将报错:python3: command not found

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

假如重新编译安装 python3 换了安装位置,安装完了之后执行这步出现错误:ln: python3: file exit

则执行:

ln -snf /usr/local/python3/bin/python3 /usr/bin/python3

参数 -snf 表示覆盖

5. 将/usr/local/python3/bin加入PATH

此文件开机执行

# vim ~/.bash_profile

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH

编译文件

source ~/.bash_profile

安装完成,检查 python3, pip3 执行是否有效。

如果 pip3 无效,创建一下软链接:

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

6. 解决缺少模块报错

检查 pip3 是否能正常安装模块:

pip3 install paramiko

最常出现的报错是缺少 ssl 模块。

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

这是由于前面安装依赖环境的时候没做,缺少 ssl 依赖。

那就补安装这个模块

yum install openssl
yum install openssl-devel

安装完了之后要重新执行第 3 步编译安装 python3 环境,将新安装的模块兼容进 python3 的安装环境中

cd Python-3.6.1
./configure --prefix=/usr/local/python3
make && make install

参考原文中还有缺少setuptools模块和安装pip模块的步骤,有遇到相关问题的点进去看就行。

基本思路:

看它的报错里面写的缺少的是什么模块,就去补安装什么模块。

安装完了要重新执行第 3 步编译安装 python3 环境,将新安装的模块兼容进 python3 的安装环境中

新环境安装 python3的更多相关文章

  1. Linux环境安装python3

    linux 安装Python3 1.python下载 请在终端输入如下命令: cd /home wget http://cdn.npm.taobao.org/dist/python/3.6.5/Pyt ...

  2. CentOS环境安装python3,pip

    安装python3(编译安装) 1. 下载python安装包到指定目录 cd /usr/local/src 这里的目录如果不存在可以自己建,当然也可以自己放在自己想放的位置,只要等会儿安装的时候能找到 ...

  3. 19c新环境安装补丁(三)_推荐

    本次安装Oracle RAC 19.3 版本 Linux red-hat 7.8  DB安装补丁  RUR 20200717. 本次安装Oracle补丁的方法类似于11G RAC打补丁的方法.  [可 ...

  4. python3.4 + pycharm 环境安装 + pycharm使用

    因个人是windows的环境,所以本文只讲windows环境下的python安装. 作为初用python的盆友,强烈建议只在电脑上装一个python版本就好了,不然就进了各种坑里了. 第一步:下载和安 ...

  5. 环境准备—之—linux下安装python3和pip3

    转自 上海悠悠 https://www.cnblogs.com/yoyoketang/p/10195102.html 前言 centos7 自带有 python,但是却是 python2 版本的 py ...

  6. Linux学习5-CentOS安装Python3.6环境和pip3

    前言 centos7 自带有 python,但是却是 python2 版本的 python,如果你想安装个python3怎么办呢? 如果直接删除python2的话,可能会引起其他的问题,因为有些东西是 ...

  7. Linux服务器超简单安装Python3环境、Ipython、Jupyter、virtualenv、virtualenvwrapper教程全在这了

    一.网卡配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ONBOOT='yes' 二.更换Linux语言环境 1.修改配置文件 vim /etc/l ...

  8. Centos7环境下安装python3.6.4 并与python2共存

    最近安装了新系统centos7,本身自带python2.7,但是由于需要使用python3 来运行一些应用,所以想到在centos环境下安装python3,并保证其和python2 可以共存. 步骤如 ...

  9. windows7 下安装python3.6开发环境

    所有的软件都放在百度云盘里: 链接: https://pan.baidu.com/s/1rux8sDK9thhbZ1qjwQg6kA 密码: iq4c 1. 安装python3.6.5 安装的时候要把 ...

随机推荐

  1. uoj#339. 【清华集训2017】小 Y 和二叉树(构造)

    传送门 膜拜大米饼巨巨 构造思路太神仙了-- 先考虑这个序列的开头,肯定是一个度数小于等于\(2\)且标号最小的节点,设为\(u\) 如果一个点度数小于等于\(2\),我们称这个点可以被选择,一个点的 ...

  2. [Xcode 实际操作]七、文件与数据-(14)数据持久化存储框架CoreData的使用:删除CoreData中的数据

    目录:[Swift]Xcode实际操作 本文将演示如何删除数据持久化对象. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //引入数据持 ...

  3. 判断iphone 屏幕大小宏定义

    #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)  #define IS_IPHONE (UI_USER_I ...

  4. 13.Python略有小成(装饰器,递归函数)

    Python(装饰器,递归函数) 一.开放封闭原则 ​ 软件面世时,不可能把所有的功能都设计好,再未来的一两年功能会陆续上线,定期更新迭代,软件之前所用的源代码,函数里面的代码以及函数的调用方式一般不 ...

  5. 登录案例version1 基本登录+验证码

    package com.frxx.web.servlet; import com.frxx.domain.User; import com.frxx.service.impl.UserServiceI ...

  6. PostgreSQL - raise函数打印字符串

    raise函数 在PostgreSQL中,该函数用于打印字符串,类似于Java中的System.out.println(),Oracle中的dbms_output.put_line(). 用法如下: ...

  7. Jmeter跨线程组传参

      我们知道,同一线程组中可以通过“正则表达式提取器”获取其中一个取样器的响应结果中的参数,直接传给线程组中的其他取样器.但其他线程组中的取样器也想使用同样的参数时,无法直接获取.举个例子: 提取“登 ...

  8. selenium基础操作

    selenium 1.打开和关闭网页 #!/usr/bin/env python # -*- coding:utf-8 -*- from selenium import webdriver drive ...

  9. [Java]基本数据类型及其封装类总结

    九种基本数据类型的大小,以及他们的封装类 类型 字节 默认值 封装类 byte 1 0 Byte char 2 null Character int 4 0 Integer long 8 0 Long ...

  10. Hive进阶_Hive的表连接

    等值连接 select e.empno, d.deptno from emp e, dept d where e.deptno=d.deptno; 不等值连接 select e.empno, e.en ...