【Linux】python版本控制和环境管理

news/2024/11/16 3:46:45/文章来源:https://www.cnblogs.com/UnderTurrets/p/18371942

@

目录
  • 1.查看目前python的版本
  • 2.添加软件源并更新
  • 3.选择你想要下载的版本
  • 4.警示:没必要设置默认版本
    • 误区
    • 千万千万不要覆盖python3软链接
    • 解决办法
  • 5.pip软件包管理
    • 最省心
    • 稍微麻烦
    • 换源


网上有很多教程都是教导小白去官方下载之后编译安装。但是,小白连cmake是什么都不知道,这种教导方式实在是误人子弟。这里作者介绍了一种十分简洁的更新方法。

1.查看目前python的版本

python --version

应该有类似如下的输出:

Python 3.9.18

2.添加软件源并更新

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

这两个指令可以赋予我们下载更高版本python的能力

3.选择你想要下载的版本

譬如,我想要下载python3.9:

sudo apt install python3.9

另外,python3.10比python3.9更新,因为10比9大。

4.警示:没必要设置默认版本

为什么我们在命令行输入python --version就可以查看版本呢?这是因为在/usr/bin/目录下存在名为python软链接,软链接其实就是链接对象的快捷方式。

Ubuntu22.04的默认python版本是3.10,输入以下指令查看目前的软链接方式:

ls -l /usr/bin/python*

应该有类似如下的输出:

lrwxrwxrwx 1 root root      18  1月 20 14:52 /usr/bin/python -> python3.10
lrwxrwxrwx 1 root root      10  8月 18  2022 /usr/bin/python3 -> python3.10
-rwxr-xr-x 1 root root 5904904 11月 20 23:14 /usr/bin/python3.10
-rwxr-xr-x 1 root root 5294896  8月 25 21:20 /usr/bin/python3.9

可以看到,目前在/usr/bin/目录下有两个软链接:pythonpython3。这两个软链接都指向了Ubuntu22.04默认的python3.10。

此外,我们也看到了我们刚刚安装的python3.9。

误区

网上有些错误的教程指示我们重建软链接,把它指向python3.9,这是没什么用的。如下面这行指令:

sudo ln -snf /usr/bin/python3.9 /usr/bin/python

稍微解释一下:-snf表示修改软链接,第一个参数是源文件,第二个参数是生成的快捷方式的位置

这样做,只能使终端中的默认的python版本改为python3.9

han@han-ASUS-TUF-Gaming-F15-FX507ZR:~$ python --version
Python 3.9.18

但是,我们后续使用sudo apt install python3-pip安装pip之后,pip下载的包默认还是给python3.10的!

千万千万不要覆盖python3软链接

如果你把指令错误输入成

sudo ln -snf /usr/bin/python3.9 /usr/bin/python3

由于你覆盖了python3这个软链接的目标python3.10,而你的系统有很多是基于python3.10的,你的终端就打不开了!!!

解决办法

如果你有IDE的话,还可以打开IDE的终端,然后恢复python3软链接的目标:

sudo ln -snf /usr/bin/python3.10 /usr/bin/python3

在这里插入图片描述

5.pip软件包管理

最省心

sudo apt install python3-pip

这样做的话,以后pip默认安装的包是给python3.10的。当然,如果我们想要给我们自己的python3.9安装软件包的话,就需要多一点字数:

python3.9 -m pip install <name of package>

稍微麻烦

如果想要以后pip下载的包默认给我们自己的python3.9使用,需要:在pycharm这款IDE里面选择了之后,直接点击安装pip,如下图:

在这里插入图片描述

然后在终端中查看pip版本,可以看到绑定了我们想要的python版本,这样以后pip安装的包也属于python3.9了:

han@han-ASUS-TUF-Gaming-F15-FX507ZR:~$ pip --version
pip 20.3.4 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)

换源

切换pip下载源为国内源,提高下载速度:

han@han-ASUS-TUF-Gaming-F15-FX507ZR:~$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
Writing to /home/han/.config/pip/pip.conf

显示自动写入了路径/home/han/.config/pip/pip.conf。当然也可以手动创建这个文件然后更改。

本文由博客一文多发平台 OpenWrite 发布!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WPF】WPF项目.exe可执行文件在非开发环境打不开

如题,做一个小工具,开发完之后把bin/release文件夹打包发他,但在他电脑打不开。 打开可靠性监视器: 按下 Win + S,在搜索栏中输入“控制面板”,然后点击进入。 在控制面板中选择 “系统和安全”。 然后选择 “安全与维护”。 在“安全与维护”窗口中,展开“维护”部分,…

poi的excel导出

poi的excel导出这个导出依赖于模板文件,可便捷设置表头样式。 也可以不使用模板,直接创建。1.引入poi依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version> </dependency…

postman实操

一、postman参数化 1、{{变量名}} 花括号,时两个括号在环境变量中设置变量参数,作用于所有的接口设置变量:当前所有的接口都可以调用这个参数get中设置变量: http://cms.duoceshi.cn/manage/loginJump.do?userAccount={{u1}}&loginPwd={{p1}} 二、断言 test中的内容详…

Apache SeaTunnel数据处理引擎适配的演进和规划

作者 | Chao Tian (tyrantlucifer),Apache SeaTunnel PMC Member 摘要 Apache SeaTunnel作为一个高性能数据同步工具,以其高效的数据处理能力,为数据集成领域带来了创新。在引擎上,Apache SeaTunnel除了支持自身的Zeta引擎外,还支持Spark和Flink。在2024年的CommunityOver…

读《工程师文化》

1、来源工程师文化2、解读 Mens et manus,拉丁语,意思是 “心智与双手” 或 “智慧与实践”。这句话常常被用来表达理论与实践相结合的理念,强调通过思考(心智)和实际操作(双手)共同推动知识和技术的发展。这也是MIT的校训。一个合格的工程师,必须能够自己动手解决问题…

二极管常见电路符号说明

二极管常见电路符号说明 摘要 本文详细介绍了四种特殊的二极管:TVS二极管用于瞬态电压抑制,响应速度快;肖特基二极管适用于高速电路,导通电压低;隧道二极管利用量子穿隧效应,适用于高频切换;变容二极管则作为可变电容使用,电容量可随电压改变。 二极管简介 普通的二极管…

CSP26

T1题目官方题解考虑暴力,发现奇数边包赢,偶数边如果异或和为\(0\)则输,当然也有特例,比如\(2->4->8->14->\),这\(4\)条边异或为\(0\)但其实必赢, 所以,为了避免这种情况发生,我们使用\(hash\) XORHashing 这样与处理出\(dis\),两点\(u,v\)即为\(dis_u xor dis_…

通过分布式资源分配实现多机器人取货与送货

原文链接:Multi-Robot Pickup and Delivery via Distributed Resource Allocation (youtube.com) Supplemental video for the paper "Multi-Robot Pickup and Delivery via Distributed Resource Allocation". 论文《通过分布式资源分配实现多机器人取货与送货》的…

Java预览PDF时的文件名称问题

直接看问题直接看问题解决思路 看了一下一个有问题的PDF文件之后发现文件的名称和文件的属性名其实不一致,浏览器默认展示的是文件的属性名,而不是我们看到的文件名称这也就让我定位到了问题的所在,出现这个bug的原因就是PDF文件的属性名称与文件名称不一致,定位到问题之后…

从零到一,全面掌握Apache DolphinScheduler发版流程,实战派经验分享!

引言 Apache DolphinScheduler的发版流程对于确保软件质量和社区协作至关重要,社区Committer王兴杰为我们详细介绍了Apache DolphinScheduler的发版流程,包括环境准备、流程文档、基础工具准备、依赖包确认等关键步骤,并指出了发版流程中可能会遇到的麻烦以及相应的解决方案…