一、安装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. Django REST framework完全入门

    Django REST framework 一个强大灵活的Django工具包,提供了便捷的 REST API 开发框架 我们用传统的django也可以实现REST风格的api,但是顶不住Django ...

  2. 【力扣】95. 不同的二叉搜索树 II

    二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的 ...

  3. Delphi编译报错对照表

    ';' not allowed before 'ELSE' → ElSE前不允许有";" " clause not allowed in OLE automation s ...

  4. Table.LastN保留后面N….Last…(Power Query 之 M 语言)

    数据源: "姓名""基数""个人比例""个人缴纳""公司比例""公司缴纳"&qu ...

  5. JS自动播放音频 无效chrome设置 (Uncaught (in promise) DOMException: play() failed because the user didn't interact)

    Chrome的autoplay政策在2018年4月做了更改.新的行为:浏览器为了提高用户体验,减少数据消耗,现在都在遵循autoplay政策,Chrome的autoplay 政策非常简单 muted ...

  6. react组件配置样式hover效果的实现

    需求 react 自定义一个组件,组件内部样式可以灵活配置 问题 一般样式都可以通过属性传入,比如:颜色,字号等,但是对于一些有hover效果的地方,属性传入后,按照平时css的使用方式不太容易实现 ...

  7. 7、滑动窗口套路算法框架——Go语言版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  8. 『与善仁』Appium基础 — 29、获取toast信息

    目录 1.toast介绍 2.toast定位 3.示例 4.封装toast判断 1.toast介绍 Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显 ...

  9. 【九度OJ】题目1026:又一版 A+B 解题报告

    [九度OJ]题目1026:又一版 A+B 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1026 题目描述: 输入两个不超过 ...

  10. 【LeetCode】986. Interval List Intersections 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 日期 题目地址:https://leetco ...