首页 > 系统相关 >【Linux】python版本控制和环境管理

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

时间:2024-08-21 16:26:02浏览次数:10  
标签:bin 版本控制 python usr Linux pip python3 python3.9

@

目录


网上有很多教程都是教导小白去官方下载之后编译安装。但是,小白连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 发布!

标签:bin,版本控制,python,usr,Linux,pip,python3,python3.9
From: https://www.cnblogs.com/UnderTurrets/p/18371942

相关文章

  • 豆瓣8.4,时隔9年,经典Python编程三剑客之一第2版重磅上市!
    时隔9年,畅销近20万册,豆瓣评分8.4,被誉为'Python编程三剑客'之一的《Python极客项目编程》终于迎来了第2版中文版的问世!作为一本经典图书的延续,第2版不仅基于Python3.9进行了全书修订,还包含AI语音识别等5个全新项目,让你跟上Python的最新潮流。 这本书因前沿的技术和易懂的代码......
  • 机器学习线性回归算法——原理+python详细代码解析(sklearn)
    线性回归算法作为经典的机器学习算法之一,拥有极为广泛的应用范围,深受业界人士的青睐。该算法主要用于研究分析响应变量如何受到特征变量的线性影响。其通过构建回归方程,借助各特征变量对响应变量进行拟合,并且能够利用回归方程进行预测。鉴于线性回归算法较为基础、简单,所以比较......
  • 解决lazarus 3.xx后在linux编译为Qt出错方法
    今天用lazarus3.4在银河麒麟将应用编译为Qt5出现以下错误信息:Warning:linker:/usr/bin/ld.bfd:/home/lb/fpcupdeluxe34/lazarus/lcl/units/aarch64-linux/qt5/qtint.o:infunction`QTINT$_$TQTWIDGETSET_$__$$_CREATE$$TQTWIDGETSET':Error:qtint.pp:(.text.n_qtint$_$t......
  • 46、Python之模块和包:一切皆对象,模块和包也不例外
    引言在前面的文章中,我们介绍了变量、函数、类,在实际编程中,始终在贯彻的有两点:1、在Python中一切皆对象,所以函数、类、模块、包也都是一等公民。2、不管是基于面向过程还是面向对象,我们在实际编程中所考虑的都是怎么提高代码的复用性,以及如何更加便于扩展。从变量,到函数,再到......
  • Linux CentOS 7 Kafka 单机版安装
    Kafka从2.6.0开始,默认使用Java11,3.0.0开始,不再支持Java8,详见:https://kafka.apache.org/downloadsProducer:消息生产者,就是向kafkabroker发消息的客户端:Consumer:消息消费者,向kafkabroker取消息的客户端;ConsumerGroup:消费者组,由多个consumer组成。消费者组......
  • Linux系统性能调优指南-硬件资源管理
    目录硬件资源管理CPU管理示例内存管理示例磁盘I/O优化示例注意事项硬件资源管理   在Linux系统中,合理管理和利用硬件资源是提高系统性能的关键。这包括CPU、内存和磁盘I/O方面的优化。下面详细介绍这些方面的配置和优化方法。CPU管理利用多核处理能力:现代......
  • linux容器基础-namespace-3(pid)
    pidnamespacepidnamespace表示隔离一个具有独立PID的运行环境。在每一个pidnamespace中,进程的pid都从1开始,且和其他pidnamespace中的PID互不影响。这意味着,不同pidnamespace中可以有相同的PID值。在介绍pidnamespace之前,先创建其他类型的namespace然后查看进程关......
  • ast.literal_eval替代eval将字符串形式的表达式解析为 Python 对象
    如果一个字符串表示一个列表,你可以使用Python的ast.literal_eval方法将其转换为真正的列表。ast.literal_eval是一个安全的方法,可以将字符串形式的表达式解析为Python对象。这里是一个例子:importast#字符串形式的列表str_list="[1,2,3,4,5]"#将字符串解析......
  • python lightgbm gpu版本,启动!
    环境Ubuntu20.04.2Python3.8.10Nvidia-smidriver535.104.05cuda12.2torch1.13.1+cu116(torchcuda11.6)步骤>python3-mpipinstall--upgradepip...Installingcollectedpackages:pipSuccessfullyinstalledpip-24.2>pip3installligh......
  • python map/filter/reduce的用法示例
    fromfunctoolsimportreducedeffunc0(a):"""a:可迭代对象的迭代元素将function应用于可迭代对象的对应元素,并返回一个迭代器,其中包含了所有映射后的结果map(function,iterable,...)function:要应用于可迭代对象的函数。iterable:要进行映射......