一、安装python

1、安装依赖环境

yum install gcc -y
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
yum install zlib zlib-devel openssl -y
yum install openssl-devel -y
yum install libffi-devel -y

2、到官网下载Python包

进入官网(https://www.python.org/)点击downloads,再点击linux

选择要下载的版本包

或者使用wget方式下载

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

3、将下载好的python包移到Linux下,然后解压

cd /usr/local
tar -zxvf Python-3.9.1.tgz

4、创建安装目录

mkdir /usr/local/python3.9/

5、进入解压后的目录,配置安装环境

cd /usr/local/Python-3.9.1
./configure --prefix=/usr/local/python3.9/

--prefix 参数是指定安装目录

6、编译并安装

make && make install

7、配置环境变量

安装好python后,如果想要在任意目录下输入python3就能进入交互模式,那么就需要设置全局变量。设置的两种方法如下:

7.1 将python3.9的bin目录添加到环境变量中

vi /etc/profile

在文件最下面添加

export PYTHON_HOME=/usr/local/python3.9
export PATH=${PYTHON_HOME}/bin:$PATH

使得配置的环境变量立即生效

source /etc/profile

7.2 将python3.9的bin目录下用到的命令添加到已有的环境变量中

8、检查是否安装成功

二、安装和使用遇到的问题

1、make install后提示:ModuleNotFoundError: No module named 'zlib'

解决方法:通过如下命令修复问题

yum install zlib zlib-devel openssl -y

修复问题后,重新执行编译和安装命令

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

2、使用pip安装时告警:WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

解决方法:通过如下命令修复问题

yum install openssl-devel -y

安装完成后重新执行编译和安装

3、使用pip3安装包时提示:ModuleNotFoundError: No module named '_ctypes'

解决方法:通过如下命令修复问题

yum install libffi-devel -y

安装完成后重新执行编译和安装

三、pip的安装和卸载

安装pip

如果python安装成功我们通过下面命令是能查看到pip的

whereis pip

如果确实没有安装pip3

可以通过下面方式进行安装

yum install python3-pip

安装后查看

因为是通过yum安装的pip3,所以pip3的安装目录不在python的安装目录下,此情况会产生一个问题:通过pip3安装的包,在import时无法识别。

也就是说我们使用python3命令根本就无法导入pip3安装的模块,因为完全找不到这个目录下。

解决这个问题有两种思路:

  • 修改下载包的安装目录
  • 将pip3安装包的目录 site-packages加入到环境变量中

修改下载包的安装目录

通过创建python3.9的 site-packages 目录的软链将pip3安装包的目录 site-packages 覆盖即可。

1 cd /usr/local/lib/python3.6
2 mv site-packages site-packages.bak
3 ln -s /usr/local/python3.9/lib/python3.9/site-packages site-packages

操作完成后,使用pip3 安装的包全部安装到  /usr/local/python3.9/lib/python3.9/site-packages 该目录下。

将pip3安装包的目录 site-packages加入到环境变量中

在家目录下  vi ~/.bashrc,在文件最后加入下面代码:

export PYTHONPATH=/usr/local/lib/python3.6/site-packages/:$PYTHONPATH

使文件立即生效

source .bashrc

此时进入python3的交互模式通过sys.path就能查看到  /usr/local/lib/python3.6 目录加入到了python的环境变量中

卸载pip

python -m pip uninstall pip -y

pip各版本包

https://pypi.tuna.tsinghua.edu.cn/simple/pip/

linux系统安装python3和pip的更多相关文章

  1. Linux系统安装python3

    Centos7系统安装python3 在安装前需要安装依赖环境包,先安装gcc 编译器,命令如下: yum -y install gcc gcc-c++ make 1.首先查看是否安装python,系 ...

  2. Linux系统安装Python3环境

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 本文基于如下Linux系统版本: 1.默认情况下,Lin ...

  3. Linux 安装python3.7.3 提示已经自动安装了pip和setuptools 可是使用时bash提示没有找到pip

    Linux 安装python3.7.3 提示已经自动安装了pip和setuptools 可是使用时bash提示没有找到pip 今天的任务就是找到解决办法 另外就是用布置好python3的路径

  4. 常见问题:Linux安装Python3步骤、Windows无法利用pip

    Linux安装python3.6和第三方库的步骤: 我的Linux是CentOS 6.5版本 Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7, ...

  5. linux python3换pip 源

    linux下python3 pip 安装模块 # python3 -m pip  install pymysql 1)检查pip.conf文件是否存在    >> cd ~    > ...

  6. linux python3编译以及 卸载,python默认为python3 ,pip默认为pip3,亲测版

    前置准备yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-de ...

  7. linux 安装python,pip,

    Linux下python升级步骤 http://www.cnblogs.com/lanxuezaipiao/archive/2012/10/21/2732864.html 在 https://www. ...

  8. Linux下python3与python3的多版本共存

    python3已经出来有些许时候了,python3相比python2进行了大量的改进,包括语法,新的功能,还有优化.虽然很多库已经同时支持 python2和python3了,但是有些库仍然没有很好的支 ...

  9. Linux中python3,django,redis以及mariab的安装

    1. Linux中python3,django,redis以及mariab的安装 2. CentOS下编译安装python3 编译安装python3.6的步骤 1.下载python3源码包 wget ...

随机推荐

  1. Typora软件使用教程

    Typora软件的使用教程 Typora软件简介 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Markdown编辑器最显著的区别.当然重点是免费. Typora编 ...

  2. 如何在eclipse jee中检出项目并转换为Maven project

    如何在eclipse jee中检出项目并转换为Maven project,最后转换为Dynamic web project 注意:该文档只针对以下eclipse版本,如图 为了方便,我将我本地的压缩包 ...

  3. [BUUCTF]PWN——ciscn_2019_s_4

    ciscn_2019_s_4 附件 步骤: 例行检查,32位程序,开启了nx保护 本地试运行一下,看看大概的情况,两次输入,让人联想到栈迁移 32位ida载入,找到关键函数,只可以溢出8字节,没法构造 ...

  4. 小迪安全 Web安全 基础入门 - 第八天 - 信息打点-系统篇&端口扫描&CDN服务&负载均衡&WAF防火墙

    一.获取网络信息-服务厂商&网络架构 1.通过whois查询获取. 2.nmap.goby等扫描工具扫描获取. 3.https://www.netcraft.com/等网站查询获取. 二.服务 ...

  5. MySQL 的日志:binlog

    前言:binlog 用于记录数据库执行写入性操作的日志信息,以二进制的形式保留在磁盘中.它是由 Server 层进行记录的,使用任何存储引擎都会产生 binlog. 实验准备 我们通过 Docker ...

  6. THUSC 2021 游记

    想了想不往博客园放不行,还是放上来了. 原文 \[\texttt{Brief Introduction} \] 众所周知,THUSC2021 5 月 15-16 日在杭州市 XJ 中学举办,然而由于 ...

  7. ligerui有时候竖直的线没对齐,是因为某一列的内容太长,此刻可以调整一下此列的宽度为适当的值便可消除此现象

    ligerui有时候竖直的线没对齐,是因为某一列的内容太长,此刻可以调整一下此列的宽度为适当的值便可消除此现象

  8. Vue3 全家桶,从 0 到 1 实战项目,新手有福了

    前端发展百花放,一技未熟百技出.未知何处去下手,关注小编胜百书. 我是前端人,专注分享前端内容! 本篇文章主要是,使用 vite 创建一个vue3 项目,实践 vie-router4 vuex4 结合 ...

  9. JAVA获取当前日期指定月份后(多少个月后)的日期

    环境要求:使用jdk1.8 package com.date; import java.text.ParseException; import java.text.SimpleDateFormat; ...

  10. 【九度OJ】题目1191:矩阵最大值 解题报告

    [九度OJ]题目1191:矩阵最大值 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1191 题目描述: 编写一个程序输入一个mXn的 ...