Ubuntu 安装指定版本 python

2023-10-27

场景

在构建 docker 镜像的时候为了与 TensorFlow、Pytorch 或者其他程序能兼容使用,需要安装指定版本的 python。常用的安装命令 apt-get 有时候不能很”精确“指定,甚至是找不到源。

隔山修路、遇水搭桥:python 官网有所有的版本,下载到本地手动安装。

方法

安装依赖

apt-get install libssl-dev openssl make gcc libffi-dev zlib1g-dev libbz2-dev zlibc wget

下载要安装的 python 版本并解压。这里以 python3.9 为例。
Python 官网下载速度很慢,这里推荐一个国内镜像网站

cd /opt
wget https://registry.npmmirror.com/-/binary/python/3.9.2/Python-3.9.2.tgz 
tar xzvf Python-3.9.2.tgz

进入python根目录并编译

cd Python-3.9.2
./configure
make
make install

这就完成安装了。默认安装到 usr/local/bin 路径下。

# ls /usr/local/bin/
2to3  2to3-3.9  easy_install-3.9  idle3  idle3.9  pip3  pip3.9  pydoc3  pydoc3.9  python3  python3-config  python3.9  python3.9-config

查看 PATH 路径。

# echo ${PATH}
/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

发现 usr/local/bin ,所以刚才安装的 python3.9 能直接使用。

root@a8998da2dddc:/# python3 --version
Python 3.9.2

两个路径的区别

usr/binusr/local/bin 都存放安装好的应用程序,二者有什么区别呢?

首先 usr 全程是 Unix System Resource 而不是 User 的什么缩写。

usr/bin 都是系统预装的可执行程序,会随着升级而改变。

usr/local/bin 是给用户存放自己可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。

如果两个目录下有相同的可执行程序,PATH 路径下哪个目录在前面,该目录下的程序优先执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 安装指定版本 python 的相关文章

  • Python 3 __getattribute__ 与点访问行为

    我读了一些关于 python 的对象属性查找的内容 这里 https blog ionelmc ro 2015 02 09 understanding python metaclasses object attribute lookup h
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 在径向(树)网络x图中查找末端节点(叶节点)

    给定下图 是否有一种方便的方法来仅获取末端节点 我所说的端节点是指那些具有一个连接边的到节点 我认为这些有时被称为叶节点 G nx DiGraph fromnodes 0 1 1 1 1 1 2 3 4 5 5 5 7 8 9 10 ton
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • Python:计算数据帧列中所有行中特定字符的实例数

    我有一个包含列 toaddress ccaddress body 的数据框 df 我想迭代数据帧的索引 以获取 toaddress 和 ccaddress 字段中电子邮件地址的最小 最大和平均数量 这是通过计算这两列中每个字段中的 和 的实
  • Python 中的 @staticmethod 与 @classmethod

    方法和方法有什么区别装饰的 https peps python org pep 0318 with staticmethod http docs python org library functions html staticmethod和
  • 如何列出 python PDB 中的当前行?

    在 perl 调试器中 如果重复列出离开当前行的代码段 可以通过输入命令返回到当前行 点 我无法使用 python PDB 模块找到任何类似的东西 如果我list如果我自己离开当前行并想再次查看它 似乎我必须记住当前正在执行的行号 对我来说
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 张量流:注册 numpy bfloat16 扩展

    正如我所见 tensorflow 中有 bfloat16 的 numpy 扩展 https github com tensorflow tensorflow blob 24ffe9f729160a095a5cab8f592392018280
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 全局变量是 None 而不是实例 - Python

    我正在处理Python 中的全局变量 代码应该可以正常工作 但是有一个问题 我必须使用全局变量作为类的实例Back 当我运行应用程序时 它说 back is None 这应该不是真的 因为第二行setup 功能 back Back Back
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • C1认证学习笔记(第二章)

    C1认证 二 web基础 语义化标签 任务目标 任务背景 常见的语义化标签 任务练习 表单标签 任务目标 任务背景 form标签 input 元素 label标签 select标签 button元素 任务练习 转义字符 任务目标 任务背景
  • Set排序

    工作中遇到 写了很久以前的写法 师兄给了很多建议 于是整理了一下 孔子曰 你知道茴香豆的茴字有几种写法吗 第一种 平常的写法 public class App public static void main String args Set
  • STM32中待机模式与看门狗的冲突问题

    最近在做刚刚入职的第一个STM32的项目 需要用到按键进入以及退出低功耗 待机模式 同时也要用到看门狗 排除进入低功耗待机模式的一些问题后加入看门狗 发现独立看门狗无法关闭 这样导致了待机模式无法进入 首先介绍一下STM32低功耗 按功耗由
  • Mac基于Aanconda PyCharm搭建Python开发环境

    基于Aanconda PyCharm搭建Python开发环境 Anaconda介绍 Anaconda指的是一个开源的Python发行版本 其包含了Python conda等180多个科学包及其依赖项 因为包含了大量的科学包 Anaconda
  • linux共享文件夹?

    linux共享文件夹 在Linux中 可以使用Samba或NFS等服务来共享文件夹 使用Samba共享文件夹 Samba是一种允许Windows和Linux之间共享文件和打印机的服务 以下是在Linux中使用Samba共享文件夹的步骤 安装
  • Python学习第〇篇-主要概念及示例

    前言 今天开始学习Python 争取每天一篇学习笔记 为保持与python风格一致 笔记中的语言尽量简洁 1 总括 python的语法与javascript相似 均为解释执行语言 python可以使用如jython解释器 使得python可
  • Python:web框架之Tornado的Hello World示例

    一 安装Tornado pip install tornado 安装完成后会看到显示tornado的版本号 二 编写Hello World程序 import tornado ioloop 导入tornado包 import tornado
  • C++/C的堆栈理解

    前言 我们经常听见一个概念 堆 heap 和栈 stack 其实在数据结构中也有同样的这两个概念 但是这和内存的堆栈是不一样的东西哦 本文也会说明他们之间的区别的 另外 本文的只是是以C C 为背景来说明 不同的语言在内存管理上面会有区别
  • SigmaPlot科学绘图工具:ROC曲线分析及AUC组间差异的显著性分析

    目的 初步使用SigmaPlot科学绘图工具 进行ROC曲线绘制并分析检验变量AUC组间差异性是否显著 软件下载及安装 SigmaPlot下载安装按照这个教程即可 https www hhkxxw com 24799 html 快速通道 S
  • Eclipse配置SVN的几种方法及使用详情

    此文章对Myeclipse同样适用 一 在Eclipse里下载Subclipse插件 方法一 从Eclipse Marketplace里面下载 具体操作 打开Eclipse gt Help gt Eclipse Marketplace gt
  • G003-186-08

    作业报告 目录 项目需求提案计划书 一 项目介绍 一 项目背景 二 产品目的 三 应用领域 1 项目范围 2 功能范围 3 应用对象 四 项目优势 五 可行性分析 1 技术可行性分析 2 经济可行性分析 3 社会可行性分析 项目需求萃取分析
  • 如何处理ChatGPT在文本生成中的语法错误和不合理性?

    ChatGPT是一种强大的自然语言处理模型 但它并不是完美的 有时会产生语法错误或不合理的文本 这些问题可能会影响模型生成的内容的质量和可信度 在处理ChatGPT中的语法错误和不合理性时 有许多方法和策略可以采用 以下是一些详细的讨论 1
  • PhotoShop 之 绘制心型云彩

    利用渐变工具 画笔工具 路径工具绘制心型云彩 1 新建一个白色画布 2 利用渐变工具 绘制背景图 3 新建一个图层 利用自定义形状 选择路径 绘制一个心型形状 4 配置画笔 5 选择路径 选择右下角的 用画笔描边路径 按钮 对心形状进行描边
  • AngularJS中的$http缓存以及处理多个$http请求

    在AngularJS的实际项目中 经常需要处理多个 http请求 每个 http请求返回一个promise 我们可以把多个promise放到 q all 方法接受的一个数组实参中去 处理多个 http请求 angular module ap
  • C++ 返回值为数组的函数

    首先整理一下new的用法 1 new 分配一个数的空间 2 new 分配一个数组的空间 空间大小在 中指定 3 当使用new运算符定义一个多维数组变量或数组对象时 它产生一个指向数组第一个元素的指针 返回的类型保持了除最左边 维数外的所有维
  • 使用 MBean 和 日志查看 Tomcat 线程池核心属性数据

    文章目录 CustomTomcatThreadPoolMBean CustomTomcatThreadPool CustomTomcatThreadPoolMBean com qww config public interface Cust
  • Python爬虫之JS逆向分析技巧

    Python爬虫之JS逆向分析技巧 当我们使用爬虫时 遇到被JS加密的参数怎么办 有人会说用Selenium不就可以了么 但是Selenium执行又没效率怎么办 答案是 使用Python的execjs库直接执行JS脚本来获取加密后的参数 J
  • 【Linux操作小试牛刀】如何使用systemctl 命令管理 systemd服务

    前言 需求 当Linux中有许多系统服务 无法通过外部管理工具或者接口开启 关闭 需要手动管理时就需要用到systemctl命令 Systemd是基于Linux的操作系统的系统和服务管理器 用于管理服务 Systemd比旧的Sysvinit
  • [结构体]Cpp里结构体的几种常用写法

    1 定义并声明结构体变量 struct Date int year int month int day int main Date date 声明并定义了一个Date类型的变量date date year 2023 date month 9
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py