Ubuntu18.04系统 部署python3.9.0 源码编译安装及pip配置全过程记录

news2024/12/29 8:20:49

1.Ubuntu系统镜像下载和基本配置

1.1 镜像下载

镜像下载:https://cn.ubuntu.com/download/desktop

1.2 配置静态IP

配置固定IP方式:
Ubuntu18之前在/etc/network/interfaces进行配置,Ubuntu18及之后版本在/etc/netplan/*.yaml进行配置,如/etc/netplan/01-network-manager-all.yaml,如果路径没有该文件,可以新建一个

netstat -rn  #查看网关
sudo vim /etc/netplan/01-network-manager-all.yaml
#举例:
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:  # 网卡名称
      dhcp4: no
      dhcp6: no
      addresses: [192.168.100.101/24]  # 本机ip及掩码
      gateway4: 192.168.100.2 # 网关地址
      nameservers:
        addresses: [192.168.100.2]  # DNS跟随网关地址一致,也可以改别的,如[114.114.114.114,8.8.8.8

参考:https://www.shuzhiduo.com/A/kmzLNpKl5G/
yaml文件内容:


network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens37:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.8.155/24]
      gateway4: 192.168.8.1
      nameservers:
        addresses: [8.8.8.8,114.114.114.114]

在配置完yaml文件后执行:

sudo netplan apply # 修改文件后应用该修改
ifconfig #查看

1.3 yaml文件语法:

  • 1.yaml的基本格式是 k: v (注意:冒号后面有一个空格,而且这个空格是必须的)
    yaml中的字符串默认不用加双引号或者单引号,如果加了双引号或者单引号,则单引号和双引号在yaml中有不同的用法,
        ""双引号不会转义字符串里面的特殊字符:特殊字符会作为本身想表达的意思 例:"张三\n李四"  会表示出 张三  然后是一个换行   然后才是 李四, '' 单引号会转义字符串里面的特殊字符
        例:'张三\n李四'  表示出来的就是一个字符串   张三\n李四
    1. 使用缩进表示层级关系
    1. 缩进时不允许使用Tab键,只允许使用空格。
  • 4.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 5.大小写敏感
    原文链接:https://blog.csdn.net/hejian_0534/article/details/100577740

配置软件源

换源原因:国内有相关的软件源,用国内的源进行下载时可以提高下载效率。
国内源也是比较多的,经常用到的就有:阿里源,清华源,网易源等。
在我的操作中用到了阿里的源:
阿里apt源:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11YWglBv
换源方式:

  1. 找到/etc/apt/sources.list进行一下备份: sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
  2. vim /etc/apt/sources.list 写入阿里源

deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

其他国内的源:
阿里源 https://developer.aliyun.com/mirror/
清华源 https://mirrors.tuna.tsinghua.edu.cn/
华科源 http://mirrors.ustc.edu.cn/
网易源 http://mirrors.163.com/
3. 更新源完成换源:

sudo apt-get update
sudo apt-get -f install
sudo apt-get upgrade

重要软件安装

网络相关

sudo apt-get openssh-server
sudo apt-get ssh
sudo apt-get net-tools

系统汉化

参考文章:https://blog.csdn.net/weixin_46048542/article/details/120403339

常见问题

  • dpkg lock:
    https://blog.csdn.net/ZHNEYU/article/details/124306452
  • 右键没有新建文档:
    https://www.bkqs.com.cn/content/kpqr6v03r.html

python3.9和pip安装配置

python3.6.9卸载

重要说明:

以下代码不能参照,不要这样卸载原有的python3.6,因为这会导致原有Ubuntu系统的好多功能也被卸载,比如Ubuntu桌面系统和gedit等,慎重慎重

# 1.卸载Python3.6
sudo apt-get remove python3.6
# 2.卸载Python3.6及其依赖
sudo apt-get remove --auto-remove python3.6
# 3.清除python3.6
sudo apt-get purge python3.6

可以采用的方式:

删除python3.6指向python3的软连接,后续的软连接是python3.9->python3的,把原本的pip3重命名。因为pip3是会去/usr/bin/python3去找。

python编译安装

  • 安装重要依赖库
    在编译python3.9之前,需要先安装wget,ssl,zlib等重要库,要不然会有问题。
sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev zlib1g

编译安装

mkdir /usr/local/python3.9.0  #作为编译后的python软件位置
cd /home/lcy/python3.9.0  #源码位置
 ./configure --prefix=/usr/local/python3.9.0
 sudo make
 sudo make install

参考: https://blog.csdn.net/LCY133/article/details/107889704,https://www.jb51.net/article/202175.htm

python和pip配置

在执行完 make install后可以查看到/usr/local/python3.9.0/下有相关的库和bin文件,我们需要建立软连接以便将python解释器链接到/usr/bin/python3上,以后执行python3就是执行的python3.9.0,另外就是pip3.9也要与pip3相关联。

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

执行python3

在这里插入图片描述

执行 pip3 install flask

在这里插入图片描述
pip3 选择python版本升级:
在这里插入图片描述python3 -m pip install --upgrade pip

pip 换源安装:

在~目录创建.pip目录,进入.pip目录创建pip3.conf文件,写入换源内容,即可实现永久换源
豆瓣的

[global]
index-url = http://pypi.douban.com/simple
[install]
use-mirrors =true
mirrors =http://pypi.douban.com/simple/
trusted-host =pypi.douban.com

其他源:

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
清华的:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
use-mirrors =true
mirrors =https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host =pypi.tuna.tsinghua.edu.cn

阿里的:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
use-mirrors =true
mirrors =http://mirrors.aliyun.com/pypi/simple/
trusted-host =mirrors.aliyun.com

换源后对当前pip3进行升级:
python3 -m pip install --upgrade pip

其他换源方式:

在pycharm的Manage Repositories中添加源地址即可,
在这里插入图片描述

问题:

subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
参照博客:
https://blog.csdn.net/qq_41856814/article/details/108714479
删除了文件:/usr/local/lsb_release

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

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

相关文章

Node.JS(1)

目录 命令行窗口(cmd窗口、小黑屏、终端、shell) 环境变量 命令行窗口(cmd窗口、小黑屏、终端、shell) winR快捷键-->cmd 常用指令 dir 列出当前目录下的所有文件 cd 目录名 进入到指定的目录 md 目录名 创建一个文件…

redis安装和使用说明

Redis安装说明大多数企业都是基于Linux服务器来部署项目,而且Redis官方也没有提供Windows版本的安装包。因此课程中我们会基于Linux系统来安装Redis.此处选择的Linux版本为CentOS 7.Redis的官方网站地址:https://redis.io/1.单机安装Redis1.1.安装Redis依…

数字验证学习笔记——SystemVerilog芯片验证23 ——数据采样

一、数据采样 当你coverpoint指定采样一个变量或表达式时,SV会创建很多“仓(bin)”来记录每个数值被捕捉到的次数。这些bin是衡量功能覆盖率的基本单位。covergroup中可以定义多个coverpoint,coverpoint中可以自定义多个cover bi…

SAP灵活工作流场景模板创建

目录 1. 创建流程对象容器 2. 编辑模板中的灵活块 3. 设置工作流启动事件 4. 设置工作流运行时事件 5. 设置工作流输出结果(可选) 6. 工作流控制类 7. 创建流程活动 8. 创建流程条件 9. 代理规则 9. 值帮助 10. 参考时间 11. 电子邮件模版 …

[ AWS - SAA ] 解决方案架构师之设计弹性架构 - 选择可靠的弹性存储(如何选择 SSD vs. HDD)

本系列博文会围绕AWS Well-Architected 和六大支柱进行讲解,这些领域的内容对成为AWS亚马逊云科技上的 解决方案架构师(SAA) 非常重要。 本文主要介绍AWS亚马逊云中,关于弹性架构设计中存储设备的一些讲解。 本文的部分内容适用于…

哈希切割 + 位图 + 布隆过滤器 —— 海量数据面试题

目录 题目一:给一个超过100G大小的log file, log中存着IP地址, 设计算法找到出现次数最多的IP地址? 哈希切割 题目二:给定100亿个整数,设计算法找到只出现一次的整数? 解法一:哈希切割 解法二&#xf…

【论文精读】Guided-MVS

今天读的是一篇发表在IROS2022上的MVS文章:Multi-View Guided Multi-View Stereo,作者是来自于意大利University of Bologna的Matteo Poggi。 论文链接:arxiv 代码链接:https://github.com/andreaconti/multi-view-guided-multi-v…

SpringCloud Netflix复习之OpenFeign

文章目录写作背景Feign核心组件介绍Encoder和DecoderLoggerContractFeign.Builder上手实战开启FeignClient调用请求日志给FeignClient注入自定义拦截器Feign支持文件上传配置Feign开启Gzip压缩Feign配置超时时间Feign整合Ribbon支持负载均衡核心源码部分FeignClient注入到Sprin…

【Qt】通过创建ui界面类成员变量的方式显示窗体

【Qt】通过创建ui界面类成员变量的方式显示窗体1、背景2、实例3、验证1、背景 将.ui 文件转化为.h 头文件参考: 【Qt】将QtDesigner生成的.ui文件转化为.h头文件 https://jn10010537.blog.csdn.net/article/details/128589666其生成的.h头文件的显示,如…

HQChart实战教程56-限制指标周期

HQChart实战教程56-限制指标周期 指标周期范围效果图增加周期限制步骤1. 创建系统指标Condition.PeriodCONDITION_PERIOD 枚举说明提示信息提示信息配色实例源码指标周期范围 有些指标我们需要限制它的周期, 如指标A它只能对日线周期有效, 分时周期时无效的, 所有在切换到分…

Apache Hive 使用

Apache Hive 使用使用beeline 连接Apache Hive查看数据库使用或进入数据库创建表查看数据表上传数据数据操纵语言(DML)查询语句函数数学函数条件函数) 使用beeline 连接Apache Hive /export/server/apache-hive-3.1.2-bin/bin/beelinebeeline> ! co…

C51单片机基础之4G模块

一、4G模块初识EC03-DNC是亿佰特公司推出的 LTE CAT1 数传模块产品, 该产品软件功能完善, 覆盖绝大多数常规应用场景, EC03-DNC 是为实现串口设备与网络服务,通过网络相互传输数据而开发的产品 , 该产品是一款带分集接…

Linux 计算机网络 从 ping 来初窥计算机网络

Linux 计算机网络 从 ping 来初窥计算机网络 在上一章节《计算机网络从零到一》我们重点讲解了整个网络的形成,以及物理层、数据链路层、网络层这三层的形成以及他们所解决的问题,而本章节主要讲解 ping 命令在 Linux 中到底发生了一些什么。 ping 简介…

学习open62541 --- [73] 数据源造成无法监测变量的问题解决

本人最近遇到一个问题:给一个变量添加数据源后,使用监测项去监测变量变化,如果采样时间为0,会发现无法监测到变量的变化。 本文讲述这种情况的发生原因以及解决办法。 一 Server例子 首先准备server例子,如下&#x…

WSL 下载服务器加速

网络下载加速,这里使用修改 hosts 文件 ,地址映射 方法,所有网址适用,这里以 WSL 下载服务器为例子 命令 wsl -l -o 访问的地址: https://raw.githubusercontent.com/microsoft/WSL/master/distributions/Distributi…

Java设计模式中组合模式是什么/树形结构怎么组合或显示存储,编程怎么实现树形结构

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 5.7 组合模式 5.7.1 概述 又名整体模式,是用于把一组相似的对象当作一个单一的对象依据树形结构来组合对象,用来表示部分以及整体层次属于…

基于asp.net+vbscript+wsc编写网站

1、前言 asp大家应该都比较熟悉&#xff0c;就是一个动态服务器页面&#xff0c;有点类似于jsp。只是不同的是asp可以在IIS服务器上创建&#xff0c;并且如果配置了.net环境的话&#xff0c;那么就可以在asp里面<%%>写vbscript。vbscript是一种脚本语言&#xff0c;其实就…

因果推断5--DML(个人笔记)

目录 1论文介绍 1.1论文 1.2摘要 1.3DML思路 2价格需求曲线 2.1价格需求弹性 2.2价格需求弹性计算DML代码 2.3价格需求弹性例子--数据集 2.4建模过程 2.5回归结果 1论文介绍 1.1论文 V. Chernozhukov, D. Chetverikov, M. Demirer, E. Duflo, C. Hansen, and a. W.…

(强制)类型转换方法

目录 一、C语言中的类型转换 二、C中的强制类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 2.5 总结 一、C语言中的类型转换 在C语言中&#xff0c;若赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或…

[PyTorch笔记]深度学习计算

[PyTorch笔记]深度学习计算1 层和块1.1自定义神经网络块1.2顺序块1.3在前向传播中执行代码2.参数管理2.1 访问参数、用于调试、诊断和可视化2.2 参数初始化2.2.1内置初始化&#xff1a;2.2.2 自定义初始化2.3 在不同模型组件间共享参数3.延后初始化4.自定义层4.1 不带参数的层4…