我们可以看到,这里要安装的包非常的多,安装的速度可能会受网络环境的影响。有时候也可能因为网络问题直接安装失败,如果你遇到了这种情况,可以考虑更换网路环境或者使用一些正向代理手段。你也可以考虑一个一个包的安装,这样可以让你看到安装到哪一个包出了问题。发现不能安装的包以后,可以尝试手动安装。
在你安装好上面的包以后,就可以进入下一步了。
1.不指定安装路径安装
我们首先进入刚才下载的源码目录,执行下面的命令:
./configure
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
这是我们源码目录下的一个预处理文件,用来对我们即将编译的代码进行预处理。也可以通过传入参数的方式来自定义一些功能,比如指定安装路径或者启动优化等。
执行完成以后,如图所示:

在执行完成以后,我们可以观察到,在我们的源代码目录下生成了一个“Makefile”文件,这个文件
是用于指导make如何编译代码的一个脚本文件。在make命令执行以后,它会首先去寻找当前目录的“Makefile”文件。

我们可以打开这个“Makefile”文件看一下。
使用下面的命令可以打开“Makefile”文件。
nano Makefile
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
我们可以“Makefile”文件中找到许多编译的规则,例如使用的编译器或者是使用的shell脚本路径再或者是安装的路径以及安装后各文件的路径。我们下面主要看安装以后各文件的路径。我们可以通过搜索找到“prefix”:

我们可以看到“prefix”变量的值是“/usr/local”这就表示,它会将python安装到这个路径下,然后我们可以看到“exec_prefix”变量的值是等于“prefix”的值。所以这样我们就可以推断出,我们的可执行文件会被安装在“/usr/local/bin”下,库文件会被安装在“usr/local/lib”下,下面的我们都可以以此类推从而找出python安装的文件夹。我还是比较不推荐不指定路径安装的,因为它会将我们安装的文件每个地方都放一点,不利于管理,并且在卸载时,我们还要去查看“Makefile”文件从而找出python都被安装到了哪个文件夹,需要我们一一去删除。当然,现在你不想使用不指定安装路径的安装方式还来得及,请将整个源码文件夹直接删除并且重新解压,解压后去到下面的指定安装路径的安装方式。
如果你觉得这样的安装方式你还能接受,那我们就继续吧。
在使用“./configure”进行了编译前的预处理以后,我们就可以使用下面的命令开始编译源代码了:
sudo make
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
如果你被提示“make”找不到之类的,那就可以考虑看看我上面让安装的编译所需的包有没有被正常安装。请一个一个进行检查。
如果你执行了编译指令以后,编译到一半。提示你找不到“xxx.h”文件,也是依赖包的问题。还是请检查安装的依赖包,当你检查完所有所需的包都齐全但程序仍然提示你缺少“xxx”包或者缺少“xxx.h”文件,这很有可能是由于python的新版本导致编译python所需的包与以往不同了。虽然这是极少数情况,但是如果你遇到了,可以根据报错去搜索“xxx”包的安装方法。
在make编译以后,你就可以使用下面的命令来安装编译好的文件了:
sudo make install
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
这里一定要加“sudo”不然会提示权限问题。执行完这条命令以后,没有报错就表示安装已经成功了,我们可以去到刚才看到的“Makefile”指出的目录下查看文件。在安装完成以后,可以跟着我们下面第四点的教程为这个python添加环境变量。
这个不指定安装路径的方法我在各个方面都讲得很简便,是因为我从一开始就强调了我并不推荐大家特别是小白使用这种方法。如果你并没有使用这种方法安装,我仍然推荐你看下面的指定安装路径的教程。
2.指定安装路径安装
下面我将为大家介绍指定路径安装python的方法,这是我比较推荐的方法,它可以把python安装到一个文件夹中,方便我们管理和卸载。那么,话不多说,让我们开始吧!
我们首先要做的还是先进入我们python的源代码目录:

我们看到源代码目录下的“configure”文件,这是我们编译前的预处理文件,它用于在编译之前对即将编译的代码进行预处理。我们可以通过修改传入这个配置文件的参数来实现一些自定义选项。下面我们就来运行这个预处理文件,并且修改其中的参数来实现指定路径安装,我们可以执行下面的指令:
./configure --prefix=/home/chulingxiao/python3.10.14
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
这里我们修改了文件的prefix参数,从而实现了修改路径,修改为了“/home/chulingxiao/python3.10.14”目录下。我们按下回车执行命令。如图所示,我们编译前的预处理就已经处理好了。

在执行了上面的命令以后,我们可以发现,我们的源代码目录下生成了一个“Makefile”文件。这个文件是用于指导“make”编译的一个文件,其中包含了使用的编译器以及shell的脚本路径和编译后的安装路径。我们可以打开这个文件看一下。使用下面的命令来打开文件。
nano Makefile
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
我们可以看到这儿的“prefix”变量中存放的就是我们刚才指定的路径,并且可以推导出后面的“bin”文件夹,“lib”文件夹等都会存放在我们指定的目录下。

在编译前的预处理已经完成以后我们就可以进行正式的编译了。我们可以在源代码目录下输入下面的命令来进行编译:
sudo make
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
这里一定要加上“sudo”不然可能会被提示权限问题。如果你被提示make命令找不到,请回去检查我一开始就让安装的编译所需的依赖包有没有被正常安装。如果在编译的过程中被提示“xxx”包未安装或者“xxx.h”头文件没有找到,同样的先去检查包是不是已经完全安装了,如果已经安装了我上面所有的包仍然提示有包或者.h文件未找到,那么就需要你自行的去安装一下这些不存在的包了。因为可能会因为python版本的不同,在编译时所依赖的包也不相同,尽管这样的可能性很低,但如果你遇到了还请自行搜索怎么安装这个缺失的包。
在输入命令以后,会经过一段时间,这段时间并不确定,根据自己的硬件和其它因素来决定。
如果你在编译的过程中没有看到红色的错误,并且收到和下图差不多的提示,那么就表示编译是成功的。

在编译成功以后,我们执行安装指令,使用安装指令来安装我们编译好的文件:
sudo make install
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
这条命令的前面也要加上“sudo”不然也可能提示权限类错误。
看到下面的提示,就表示我们编译好的二进制文件已经成功安装了,但是出现了两条警告,一条是我们没有将这个路径添加到环境变量,另一个警告是不推荐我们使用root的身份去执行pip。都是不重要的警告。

我们现在去到安装的目录验证一下安装的python是否可用。可执行文件在我们安装的目录下的“bin”目录下,我们使用下面的命令进行验证:
- class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="1"> class="hljs-ln-code"> class="hljs-ln-line">cd /home/chulingxiao/python3.10.14/bin/
- class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="2"> class="hljs-ln-code"> class="hljs-ln-line">./python3.10
- class="hljs-ln-numbers"> class="hljs-ln-line hljs-ln-n" data-line-number="3"> class="hljs-ln-code"> class="hljs-ln-line">print('hello')
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
我们可以看到我们的python具有输出,说明我们的安装是成功的。

四、将python添加到环境变量中
当我们输入一个命令以后,系统会优先从当前路径寻找,然后再去用户变量中寻找,最后会去系统变量中寻找,如果都没找到就会提示没有这个命令或者这个命令没有找到。所以我们在这里配置环境变量我们要将python配置到用户变量中。
我们使用下面的命令打开用户环境变量的配置文件:
nano ~/.bashrc
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
我们可以去到配置文件的下方,在配置文件中加入一行:
export PATH="/home/chulingxiao/python3.10.14/bin:$PATH"
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
大家照着复制就行,把这里面的路径替换为自己的python安装路径,不要忘了语句最后的“:$PATH”
在添加完这一行后保存并且退出文件:

我们使用下面的命令来更新环境变量的配置文件:
source ~/.bashrc
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
更新完环境变量以后,我们在系统中的任何路径下输入“python3.10”就都能找到我们安装的python了。

至此,我们python的环境变量已经配置完成。如果你在配置完环境变量以后仍然被提示找不到命令,那首先去检查环境变量的配置文件,检查配置文件中的路径是否写对,语句是否有缺失,确定配置文件是正确的以后还是不行的话就去查看是否使用命令更新了配置文件。
五、结语
因为这次的教程并不是面向小白的,所以中间我省略了许多细节,但是大致的操作步骤是不会变的,最容易出现错误的地方就在编译的时候,这里需要大家仔细检查所需的包是不是都已经安装完成了。大家在添加环境变量时也要注意不要输错了或者少输一些东西。那我们今天的教程就到此结束了,感谢大家的阅读!
data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/c858845275/article/details/141256828","extend1":"pc","ab":"new"}">>
评论记录:
回复评论: