linux环境下的python安装过程图解(含setuptools)
作者:ab198604 发布时间:2021-03-31 13:03:56
这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装。
一、下载python源码包
打开ubuntu下的shell终端,通过wget命令下载python源码包,如下图所示:
将python-2.7.3.tgz下载至/opt目录下。
二、python的解压
三、python的编译与安装
在对python进行编译之前,必须对它进行配置。在unix/linux平台上的安装过程中,配置和编译过程全部已经自动化了,我们所需要做的就是输入几条命令然后回车即可。
通过执行脚本./configure开始编译, 这一过程可以决定系统的配置并创建相应的Makefile文件。你也可以传递一些参数选项来配置这个脚本。当这一步完成后,就可以运行make了。操作如下图所示:
通过添加--prefix用于指定python的安装路径于/usr/local/python2.7,配置完成后,我们就可以执行make操作了.
上面make编译的时间可能会比较长,大概5-6分钟,完成之后我们就可以进行安排操作了,输入指令make install(注意权限), 如下:
下面我们查看一下安装后的python目录,指令如下:
上面在./configure的时候增加python的安装目录,所以我们用ls命令查看此目录的信息。其中bin目录下用于存放python的相关执行程序。
但是,由于这是我们自己手动将python安装于/usr/local/python2.7目录下,此时$PATH环境变量无法找到此目录下的python解释器,为此可以增加一个软链接,代码如下:
通过ln -s /usr/local/python2.7/bin/python /bin/python2.7命令可以在/bin路径下创建一软链接文件python2.7,当访问此链接文件,就可以间接地访问/usr/local/python2.7下的python程序了。这种方式与windows下的快捷方式类似。
下面可以通过运行python命令交互模式以查看刚刚安装的python版本情况:
如上所示,通过直接执行python2.7可以访问/usr/local/python2.7下的python解释器,其版本为Python 2.7.3,这个正是我们刚刚下载的python版本,或者也可以通过命令:
python2.7 -V来查看。至此Python安装结束。
四、Setuptools的安装过程
1、setuptools的下载
setuptools源码的下载与python类似,google上一搜索第一个便是,通过wget命令来下载,指令如下:
2、setuptools的解压
3、setuptools的编译及安装
编译如下,用python2.7版本的程序来执行setup.py脚本,此脚本带参数build,执行编译过程。
(注意:如果用其它版本的python解释器来执行时,如python2.6,将把setuptools安装至相应的版本目录下)
如果编译OK,就可以进行安装了,与上述指令类似,如下:
如果不出问题就已经安装成功了,但是目前我安装不成功,显示如下错误:
根据错误提示,主要错误在于“Compression requires the (missing) zlib module“,错误原因在于缺少zlib模块,但是最根本原因在于安装python2.7.3之前未进行依赖检查,最好通过命令sudo apt-get build-dep python进行检查。所以要解决zlib module缺少的问题,必须在安装python2.7.3之前先安装zlib1g-dev软件包,安装完成后再重新安装python2.7.3,然后再运行sudo python2.7 setup.py install,此时才可正常解决问题,如下所示:
出现以上图就表明setuptools工具已经安装成功。并且可以看到此setuptools安装的路径在/usr/local/python/python2.7目录下。
我们可以查看一下:
我们可以看到在刚安装的python目录下存在一些easy_install程序,这些就是setuptools工具的一些程序,方便我们后期安装第三方模块使用, 在此我们继续作个软链接:
这样,当我们直接输入easy_install就可以访问此程序了。
4、用setuptools自动安装django及numpy
安装django命令如下:sudo easy_install djangosudo apt-get install libssl-dev
但是有时会发生“unknow url type: htpps"错误,如下图(本人就发生啦,很不幸!)
出现以上问题的解决办法只有一个,即在安装python2.7.3之前未安装libssl-dev库,因此需要安装此库,然后再重新按上述方式安装一遍python和setuptools,最后再用easy_install安装django,此时才能成功安装。安装libssl-dev库命令如下:
sudo apt-get install libssl-dev
安装numpy命令如下:
sudo easy_install numpy
就可以自动安装了,这种方式和sudo apt-get install 类似
来源:http://blog.csdn.net/ab198604/article/details/8681851


猜你喜欢
- ASP中RegExp是什么 '名字字符检验Public Function CheckName(Str) &nbs
- 需求小编通常会上一些专业的视频网站比如腾讯视频、优酷,在上面看电影、电视剧。这些网站有个优点,可以缓存视频,在通勤路上比如地铁就可以愉快的刷
- 子查询分类按返回结果集分类子查询按返回结果集的不同分为4种:表子查询,行子查询,列子查询和标量子查询。 表子查询:返回的结果集是一个行的集合
- 本文实例讲述了Django基于ORM操作数据库的方法。分享给大家供大家参考,具体如下:1、配置数据库vim settings #HelloW
- 这是我使用python写的第一个类(也算是学习面向对象语言以来正式写的第一个解耦的类),记录下改进的过程。分析需求最初,因为使用time模块
- 但是有时候,可以视看处进逻辑程度,可以把三者写成一个触发器,只是在其中稍作判断而已。 你可以根据从下面方法判断触发器是是处理了插入,删除还是
- 介绍兄弟们,这个是正经的教程,不要拿来乱用,可以自己用自己的电脑或者手机试,但是别搞别人,懂的都懂!本文思路1.通过opencv调用摄像头拍
- 前言Go语言的 sort 包实现了内置和用户定义类型的排序,sort包中实现了3种基本的排序算法:插入排序.快排和堆排序.和其他语言中一样,
- 你需要添加两个按钮:一个按钮使所有英雄都可以死亡,而另一个按钮使所有英雄永生。由于它会影响所有英雄,而与选择无关,因此这需要一个单独的按钮,
- 这段时间应老师的要求,给实验室写了一个基于 PyQt5 的小工具。然而源码发过去人家还不要,一定要打包成可执行软件。那就打包呗,刚好以前对
- 有时候我们会有这样的需求,需要把一些数据从别的库导入到另外的一个库中,而这些数据是用CSV文件存放的。对于MySql数据库我们有两种方式:一
- python3实现批量修改文件名,供大家参考,具体内容如下以批量修改某文件夹下所有图片名称为例,注释超详细,万能模板,读者可举一反三,适当修
- RSS 是一个可用多种扩展来表示的缩写:“RDF 站点摘要(RDF Site Summary)”、“真正简单的辛迪加(Really Simp
- 关于matplotlib如何设置图例的位置?如何将图例放在图外?以及如何在一幅图有多个子图的情况下,删除重复的图例?我用一个简单的例子说明一
- 1. 前言微信的跳一跳相信大家都很熟悉了,而且现在各种 * 、辅助也是满天飞,反正本人的好友排行榜中已经是八九百都不足为奇了。某宝
- 如下所示:# -*- coding: utf-8 -*-# 要求:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。def
- 一、绪论在使用python开发过程中经常会使用到第三方库。因此就涉及到了如何安装、复制移动。二、安装方式第三方库的安装方式1、python自
- 刚刚接触springboot,对很多东西都不熟悉,例如,它的注解方式,他的配置方式等;听说它很牛逼,所以就尝试着去学习。在基本熟悉sprin
- 要想更好的理解 css, 尤其是 IE 下对 css 的渲染,haslayout 是一个非常有必要彻底弄清除的概念。大多IE下的显示错误,就
- 本人曾经用过的备份方式有:mysqldump、mysqlhotcopy、BACKUP TABLE 、SELECT INTO OUTFILE,