[Linux]在Ubuntu中如何正确安装python
楚灵魈 2024-09-05 11:37:01 阅读 66
一、在Ubuntu中python常见的安装方式
在Ubuntu中我们常用的python安装方式有使用包管理工具安装或者使用源码安装,下面我们来讲解一下这两种安装方式的优缺点。首先是使用包管理工具安装,我们可以直接使用“apt install python3.9”来安装一个我们想要的版本的python,这种安装方式就非常的简单,对于新手非常友好,但是缺点也很明显,这种安装方式不能指定安装路径,在安装时环境变量也被一并配置好了,我们自定义的成分太少了,而且使用这种方式安装多个python后可能会造成环境冲突。然后我们来介绍一下使用源码进行安装的安装方式,这种安装方式就相对复杂一些,但是给用户的自定义成分也很高,我们可以自己选择安装路径,自行添加环境变量。在卸载时,我们直接将它安装的目录整个删掉即可,也算是一种比较简单的卸载方式了。这篇文章我们会主要讲解如何使用源码进行安装。下面,就让我们开始吧!
二、python的源码下载
同样的,我们需要去python的官网下载源码,由于本次教程已经不面向纯小白了,所以很多细节可能会被我省略。我们打开python的官网:
如果你没有找到python的官网,可以点击下方的链接进入:
python官网:Welcome to Python.org
进入python的官网以后。我们点击“Downloads”进入python的下载页面。
进入下载界面以后,往下滑找到一个自己想安装的python版本。
点击“Download”进入下载详情页。往下滑,将源码下载下来:
我这里选择的是python3.10.14,后面也都会用这个版本进行演示。
我们这里如果你的Ubuntu是图形化的可以直接在浏览器中下载,如果是无图形化的可能就要使用wget命令来下载了。下面我们演示无图形化的情况,输入下面的命令:
wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz
不同版本的python相关的指令也不同。
下载好以后如图:
可以使用“ls”命令查看文件:
我们使用下面的命令来解压文件:
tar -xvf ./Python-3.10.14.tgz
解压以后得到以下文件夹:
使用下面的命令进入源码文件夹:
cd Python-3.10.14
进入以后可以看到以下文件:
至此,我们的源码已经准备完成,下面就可以开始编译安装了。
三、python的安装
我们使用源码安装python也可以选择指定安装路径和不指定安装路径两种,指定安装路径这个操作要在初始化的时候就要完成。后面,两种情况我都会演示。
在不管是安装python时指定安装路径还是不指定安装路径它们都会有一个过程:“编译”,在编译时需要一些必要的依赖库,如果不安装这些库,在编译时就可能会报错,下面,我们就来安装编译时必要的库。
输入下面的命令更新apt的包列表,这样可以让我们安装的包处于一个比较新的版本。
sudo apt update
在更新完包列表以后,我们使用下面的命令来安装编译时必要的包。
sudo apt install -y build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev libffi-dev
我们可以看到,这里要安装的包非常的多,安装的速度可能会受网络环境的影响。有时候也可能因为网络问题直接安装失败,如果你遇到了这种情况,可以考虑更换网路环境或者使用一些正向代理手段。你也可以考虑一个一个包的安装,这样可以让你看到安装到哪一个包出了问题。发现不能安装的包以后,可以尝试手动安装。
在你安装好上面的包以后,就可以进入下一步了。
1.不指定安装路径安装
我们首先进入刚才下载的源码目录,执行下面的命令:
./configure
这是我们源码目录下的一个预处理文件,用来对我们即将编译的代码进行预处理。也可以通过传入参数的方式来自定义一些功能,比如指定安装路径或者启动优化等。
执行完成以后,如图所示:
在执行完成以后,我们可以观察到,在我们的源代码目录下生成了一个“Makefile”文件,这个文件
是用于指导make如何编译代码的一个脚本文件。在make命令执行以后,它会首先去寻找当前目录的“Makefile”文件。
我们可以打开这个“Makefile”文件看一下。
使用下面的命令可以打开“Makefile”文件。
nano Makefile
我们可以“Makefile”文件中找到许多编译的规则,例如使用的编译器或者是使用的shell脚本路径再或者是安装的路径以及安装后各文件的路径。我们下面主要看安装以后各文件的路径。我们可以通过搜索找到“prefix”:
我们可以看到“prefix”变量的值是“/usr/local”这就表示,它会将python安装到这个路径下,然后我们可以看到“exec_prefix”变量的值是等于“prefix”的值。所以这样我们就可以推断出,我们的可执行文件会被安装在“/usr/local/bin”下,库文件会被安装在“usr/local/lib”下,下面的我们都可以以此类推从而找出python安装的文件夹。我还是比较不推荐不指定路径安装的,因为它会将我们安装的文件每个地方都放一点,不利于管理,并且在卸载时,我们还要去查看“Makefile”文件从而找出python都被安装到了哪个文件夹,需要我们一一去删除。当然,现在你不想使用不指定安装路径的安装方式还来得及,请将整个源码文件夹直接删除并且重新解压,解压后去到下面的指定安装路径的安装方式。
如果你觉得这样的安装方式你还能接受,那我们就继续吧。
在使用“./configure”进行了编译前的预处理以后,我们就可以使用下面的命令开始编译源代码了:
sudo make
如果你被提示“make”找不到之类的,那就可以考虑看看我上面让安装的编译所需的包有没有被正常安装。请一个一个进行检查。
如果你执行了编译指令以后,编译到一半。提示你找不到“xxx.h”文件,也是依赖包的问题。还是请检查安装的依赖包,当你检查完所有所需的包都齐全但程序仍然提示你缺少“xxx”包或者缺少“xxx.h”文件,这很有可能是由于python的新版本导致编译python所需的包与以往不同了。虽然这是极少数情况,但是如果你遇到了,可以根据报错去搜索“xxx”包的安装方法。
在make编译以后,你就可以使用下面的命令来安装编译好的文件了:
sudo make install
这里一定要加“sudo”不然会提示权限问题。执行完这条命令以后,没有报错就表示安装已经成功了,我们可以去到刚才看到的“Makefile”指出的目录下查看文件。在安装完成以后,可以跟着我们下面第四点的教程为这个python添加环境变量。
这个不指定安装路径的方法我在各个方面都讲得很简便,是因为我从一开始就强调了我并不推荐大家特别是小白使用这种方法。如果你并没有使用这种方法安装,我仍然推荐你看下面的指定安装路径的教程。
2.指定安装路径安装
下面我将为大家介绍指定路径安装python的方法,这是我比较推荐的方法,它可以把python安装到一个文件夹中,方便我们管理和卸载。那么,话不多说,让我们开始吧!
我们首先要做的还是先进入我们python的源代码目录:
我们看到源代码目录下的“configure”文件,这是我们编译前的预处理文件,它用于在编译之前对即将编译的代码进行预处理。我们可以通过修改传入这个配置文件的参数来实现一些自定义选项。下面我们就来运行这个预处理文件,并且修改其中的参数来实现指定路径安装,我们可以执行下面的指令:
./configure --prefix=/home/chulingxiao/python3.10.14
这里我们修改了文件的prefix参数,从而实现了修改路径,修改为了“/home/chulingxiao/python3.10.14”目录下。我们按下回车执行命令。如图所示,我们编译前的预处理就已经处理好了。
在执行了上面的命令以后,我们可以发现,我们的源代码目录下生成了一个“Makefile”文件。这个文件是用于指导“make”编译的一个文件,其中包含了使用的编译器以及shell的脚本路径和编译后的安装路径。我们可以打开这个文件看一下。使用下面的命令来打开文件。
nano Makefile
我们可以看到这儿的“prefix”变量中存放的就是我们刚才指定的路径,并且可以推导出后面的“bin”文件夹,“lib”文件夹等都会存放在我们指定的目录下。
在编译前的预处理已经完成以后我们就可以进行正式的编译了。我们可以在源代码目录下输入下面的命令来进行编译:
sudo make
这里一定要加上“sudo”不然可能会被提示权限问题。如果你被提示make命令找不到,请回去检查我一开始就让安装的编译所需的依赖包有没有被正常安装。如果在编译的过程中被提示“xxx”包未安装或者“xxx.h”头文件没有找到,同样的先去检查包是不是已经完全安装了,如果已经安装了我上面所有的包仍然提示有包或者.h文件未找到,那么就需要你自行的去安装一下这些不存在的包了。因为可能会因为python版本的不同,在编译时所依赖的包也不相同,尽管这样的可能性很低,但如果你遇到了还请自行搜索怎么安装这个缺失的包。
在输入命令以后,会经过一段时间,这段时间并不确定,根据自己的硬件和其它因素来决定。
如果你在编译的过程中没有看到红色的错误,并且收到和下图差不多的提示,那么就表示编译是成功的。
在编译成功以后,我们执行安装指令,使用安装指令来安装我们编译好的文件:
sudo make install
这条命令的前面也要加上“sudo”不然也可能提示权限类错误。
看到下面的提示,就表示我们编译好的二进制文件已经成功安装了,但是出现了两条警告,一条是我们没有将这个路径添加到环境变量,另一个警告是不推荐我们使用root的身份去执行pip。都是不重要的警告。
我们现在去到安装的目录验证一下安装的python是否可用。可执行文件在我们安装的目录下的“bin”目录下,我们使用下面的命令进行验证:
cd /home/chulingxiao/python3.10.14/bin/
./python3.10
print('hello')
我们可以看到我们的python具有输出,说明我们的安装是成功的。
四、将python添加到环境变量中
当我们输入一个命令以后,系统会优先从当前路径寻找,然后再去用户变量中寻找,最后会去系统变量中寻找,如果都没找到就会提示没有这个命令或者这个命令没有找到。所以我们在这里配置环境变量我们要将python配置到用户变量中。
我们使用下面的命令打开用户环境变量的配置文件:
nano ~/.bashrc
我们可以去到配置文件的下方,在配置文件中加入一行:
export PATH="/home/chulingxiao/python3.10.14/bin:$PATH"
大家照着复制就行,把这里面的路径替换为自己的python安装路径,不要忘了语句最后的“:$PATH”
在添加完这一行后保存并且退出文件:
我们使用下面的命令来更新环境变量的配置文件:
source ~/.bashrc
更新完环境变量以后,我们在系统中的任何路径下输入“python3.10”就都能找到我们安装的python了。
至此,我们python的环境变量已经配置完成。如果你在配置完环境变量以后仍然被提示找不到命令,那首先去检查环境变量的配置文件,检查配置文件中的路径是否写对,语句是否有缺失,确定配置文件是正确的以后还是不行的话就去查看是否使用命令更新了配置文件。
五、结语
因为这次的教程并不是面向小白的,所以中间我省略了许多细节,但是大致的操作步骤是不会变的,最容易出现错误的地方就在编译的时候,这里需要大家仔细检查所需的包是不是都已经安装完成了。大家在添加环境变量时也要注意不要输错了或者少输一些东西。那我们今天的教程就到此结束了,感谢大家的阅读!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。