ubantu python完整安装示例(python3.7.1演示)

news2024/11/22 22:31:15

文章目录

  • 前言
  • 准备源码包
    • 1.下载
    • 2.解压
  • 准备工作(重要)
    • 1.下载cmake(用于编译源码)
    • 2.下载必要的Module
    • 注意事项
  • 编译安装
  • 链接并验证
  • 配置环境变量
    • 1.移除原3.5link
    • 2.更换默认python3 的版本为3.7
    • 3.添加路径

前言

为什么需要使用源码编译安装?

使用apt-get下载验证python3安装时,(sudo apt-get install python3) 你可能会看到python3 is already the newest version (3.5.1-3)。即你提供的仓库中不存在更高版本或者通过apt-get暂时只能安装这么高的版本。
如果你没看到这个提示,那么就可能单纯是你的仓库中没有这个版本的python,可以如下操作:

apt-get install -y software-properties-common

add-apt-repository ppa:deadsnakes/ppa
或者add-apt-repository ppa:jonathonf/python-3.7

apt-get update

apt-get install python3.7

或者尝试添加软件源:
vi /etc/apt/sources.list

# 阿里云的软件源
deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
#ubuntu 有科学上网可以加上,否则太慢,没用
# deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
# deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
# deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
# deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
# deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://ppa.launchpad.net/q-quark/equalx/ubuntu xenial main

更新下载源
sudo apt-get update

如果还是不行,就可以考虑从源码编译安装了。
本教程使用Python3.7.1演示安装


准备源码包

1.下载

这里提供3.7.1的源码包:
链接: https://pan.baidu.com/s/1640r2VRsH1rpmMzUW0Wb4w?pwd=hell
如何想下载其他版本的,可以官网下载:
https://www.python.org/ftp/python/
下载完成后将tar包上传到需要安装的机器上。
或者如果有科学上网也可以在命令行操作:

apt-get install wget
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 

2.解压

cd ~/

tar -xzvf Python-3.7.1.tgz 
如果是tar包
tar -zvf Python-3.7.1.tar

准备工作(重要)

1.下载cmake(用于编译源码)

apt-get install wget
wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz
tar -zxvf cmake-3.10.3.tar.gz
cd cmake-3.10.3
./configure
make
sudo make install

2.下载必要的Module

更新下载源:

sudo apt-get update

下载:

sudo apt-get install gcc g++ patchelf zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev lzma liblzma-dev libffi-dev libc6-dev
如果 libffi-dev无法安装,可以按下列指令单独下载:

sudo apt-get update
 
sudo apt-get upgrade
 
sudo apt-get dist-upgrade
 
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
 
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
 
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
 
sudo apt-get install libssl-dev openssl
 
sudo apt-get install libffi-dev

注意事项

一定要下载完了再进行下一步,否则你可能会在make编译时看到这些信息:
ModuleNotFoundError: No module named '_ctypes'或其他module不在的报错,从而导致需要重新编译。


编译安装

#进入解压的目录
cd ~/Python-3.7.1
#创建安装目录
sudo mkdir -p /usr/local/python3
#编译并安装
./configure --prefix=/usr/local/python3  --enable-optimizations
make
sudo make install

可以参考我结束:
在这里插入图片描述


链接并验证

建立新的指向python3.7的软链接(类似做了一个命令映射或快捷指令)

#如果你还想保留python2则:
sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
使用时:pytho3 ...
#否则添加python3的软链接
sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python

#如果你还想保留pip则:
sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
使用时:pip3 ...
#否则添加pip3的软链接     
sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip

如果报错就:
rm -rf /usr/bin/python
rm -rf /usr/bin/pip
e.g.
ln: failed to create symbolic link '/usr/bin/pip': File exists
则:rm -rf /usr/bin/pip


验证
在这里插入图片描述
在这里插入图片描述


配置环境变量

1.移除原3.5link

rm -rf /usr/bin/python3

2.更换默认python3 的版本为3.7

sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3

3.添加路径

vim ~/.bashrc

export PYTHON_LIBRARY_PATH=/usr/local/python3/lib
export PYTHON_INCLUDE_PATH=/usr/local/python3/include
export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH

soource ~/.bashrc

到此python3.7.1就安装完了,本教程也适用于其他版本的安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享项目 - Vue3 + TS + element-ui-plus 项目 -- Table表格表单

文章目录前言项目地址以及怎么阅读别人的代码整体代码分页数据作者是怎么处理的 usePagination顺藤摸瓜找到 api 接口的封装api 接口再往底层找全局请求封装与请求拦截器 service.ts前言 今天看一个 ts 项目的 table 模块,亲身体验这是公司后台管理系统一定会使用到…

Springboot @Test 给Controller接口 写 单元测试

前言 最近有小伙伴问到怎么给 controller的接口写单元测试。 单元测试是开发必不可少的一个环节。 既然有人问到了,那我觉得可能不止一个人不会,那就按照惯例,出手。 正文 内容: 主要是get 和 post 两种请求方式的接口 的 单元测…

centos7 开机自启动自定义脚本

centos7 开机自启动自定义脚本背景配置自启动jar1.首先书写自启动脚本2.在rc.local中加入脚本reboot测试docker版本的自启动背景 项目中有遇到2个问题, 1: 使用java启动jar包 2: docker容器中自启动个服务。 这2个都要使用linux的开机自启动问…

AcWing 1017. 怪盗基德的滑翔翼

怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。有一天,怪盗基德像往常一样偷走了一颗珍贵…

【图像分类】卷积神经网络之LeNet5网络模型实现MNIST手写数字识别

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 在上一篇博文中我们对LeNet5网络模型的结构进行了剖析,本篇博文,我们将使用PyTorch搭建LeNet5实现MNIST手写数字…

使用vmware制作云平台redhat7.9镜像模板

一、概述 1.1 redhat7.9 定制镜像上传到云平台。 这个制作镜像得方式适用于多种iso 镜像。 将iso 镜像通过vmware 创建出一台虚机,对虚机做一些基础配置。在虚机上安装kvm 虚拟化得工具, 将iso 镜像在导入虚机种通过kvm创建一下虚机, 虚机创…

Embedding 理解

Word Embedding 单词表示最简单的是 one-hot 但是它的缺点是 矩阵表示过于稀疏,占用空间对相关的词语无法得知它们的含义是相近的。 Word Embedding 解决了上述两个缺点,一个 Word Embedding 直观的例子如下图所示。 每个维度表示一个特征&#xff0…

简述操作系统的文件系统

前言 文件系统是操作系统中负责管理持久数据的子系统,将用户的文件保存在硬盘等硬件设备中,即使断电了数据也不会丢失。 对于用户而言,文件是存储的最小单位,再少的数据也需要以文件的形式存储在外部存储器中。以硬盘为例&#…

金三银四,我不允许你们不知道这些软件测试面试题

01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法&…

DataX及DataX-Web

大数据Hadoop之——数据同步工具DataX数据采集工具-DataX datax详细介绍及使用 一、概述 DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、…

前端将base64图片转换成file文件

1、base64转成file具体代码 // base64图片转file的方法(base64图片, 设置生成file的文件名)function base64ToFile(base64, fileName) {// 将base64按照 , 进行分割 将前缀 与后续内容分隔开let data base64.split(,);// 利用正则表达式 从前缀中获取图…

PAT 甲级 1002 python 测试点1未通过

题目: 思路: 1注意多项式非零项的数目 2两项相加为0时不输出 3 测试点1未通过 代码: C{} Alist(input().split()) Blist(input().split())count0 for i in range(int(A[0])):C[A[i*21]]float(A[i*22])count count 1for i in range(int(B…

支付宝支付功能使用

1、进入“蚂蚁金服开放平台” https://open.alipay.com/https://open.alipay.com/ 2、下载支付宝官方 demo,进行配置和测试 文档地址 手机网站支付 DEMO | 网页&移动应用支付宝文档中心https://opendocs.alipay.com/open/02no47 demo下载 网页…

如何使用ngxin的 upstream

1.引言: 1.1反向代理: 反向代理是充当Web服务器网关的代理服务器。当您将请求发送到使用反向代理的Web服务器时,他们将先转到反向代理,由该代理将确定是将其路由到Web服务器还是将其阻止。 这意味着有了反向代理,您…

Java Stream流1

目录1 Stream流1.1 Stream流的生成方式1.2 Stream流中间操作之 filter1.3 Stream流中间操作之 limit 和 skip1.4 Stream流中间操作之 concat 和 distinct1 Stream流 体验Stream流需求 package test;import java.lang.reflect.Array; import java.util.ArrayList;public clas…

Arduino IDE搭建Heltec开发板开发环境

Arduino IDE搭建Heltec开发板开发环境Heltec开发板开发环境下载与搭建Arduino IDE下载与安装搭建Heltec开发板的开发环境添加package URL方法通过Git的方法安装离线安装Heltec开发板开发环境下载与搭建 Arduino IDE下载与安装 Heltec的ESP系列和大部分的LoRa系列开发板都是用A…

2.Gin内容介绍

目录 参考 主要内容 关于Web 创建项目 为什么要用框架 Gin框架介绍 Gin框架安装与使用 安装 第一个Gin示例: RESTful API Gin渲染 HTML渲染 自定义模板函数 静态文件处理 使用模板继承 补充文件路径处理 JSON渲染 XML渲染 YMAL渲染 protobuf渲染…

【Java基础 下】 024 -- 集合进阶(双列集合、HashMap、LinkedHashMap、TreeMap、Collections)

学习内容: 目录 一、双列集合 1、双列集合的特点 2、双列集合的常见API 示例代码 3、Map的遍历方式 ①、第一种遍历方式:键找值(keySet) ②、第二种遍历方式:键值对(entrySet) ③、第三种遍历方…

LeetCode 周赛 333,你管这叫 Medium 难度?

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 上周是 LeetCode 第 333 场周赛,你参加了吗?这场周赛质量很高,但难度标得不对,我真的会谢。算法…

深度学习在视频多目标跟踪中的应用综述

文章目录摘要1、简介2、MOT:算法、指标和数据集2.1、MOT算法简介2.2、指标经典的指标完整的MOT指标ID 分数2.3、基准数据集3、MOT中的深度学习3.1、深度学习中的检测步骤3.1.1、Faster R-CNN3.1.2、SSD3.1.3、Other detectors3.1.4、cnn在检测步骤中的其他用途3.2、深度学习在特…