linux下python3源码安装及卸载
Linux下Python3的源码编译安装和卸载方法
| [日期:2019-06-21] | 来源:博客园 作者:wuli潇萧 | [字体:大 中 小] |
(一)Linux下软件的源码编译安装和卸载方法
Linux下正常的编译安装/卸载
源码的安装一般由3个步骤组成:
- 配置(
configure) - 编译(
make) #编译产生的所有文件仅仅在当前目录下,可以查看MakeFile文件查看编译内容 - 安装(
make install)。 #执行MakeFile的INSTALL方法
configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。
其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。
如果配置了--prefix,如:
$ ./configure --prefix=/usr/local/linuxidctest
安装后的所有资源文件都会被放在/usr/local/linuxidctest目录中,不会分散到其他目录。
使用--prefix选项的另一个好处是方便卸载软件或移植软件
- 当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;
- 移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。
make install PREFIX=path
这里PREFIX必须大写,其实绝大部分情况下 make install 都不能再指定 PREFIX 了,因为大部分程序都会 configure 时得到的 prefix 写入 config.h,然后在编译时编译到可执行文件内部,以便在执行时读取资源文件等。
这样在编译完毕后,就不能再修改 prefix 了。只有运行时不需要资源文件的小工具,才可能在安装的时候随意选择 PREFIX,或者具有 loader 的大程序,在执行时通过 loader 传入路径……
关于卸载
如果安装的时候指定了--prefix,直接删除就好。如果没有配置--prefix选项,,并且源代码没有提供make uninstall/distclean/veryclean的功能,则可以通过以下方式可以完整卸载:
找一个临时目录重新安装一遍,如:
$ ./configure --prefix=/tmp/to_remove
$ make && 'make install >&1|tee make.log'
然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。
(二)debian 8 jessie安装Python3.6
debian 系统debian8官方停止更新维护了,目前apt源仅支持python3.4,debian8系统内置的python2为python2.7.9,Python3版本为3.42。
想要安装Python3.5及以上的版本,只能下载源码编译安装,但是千万不要手欠的去删除系统自带python3.4,
否则后果请参考
https://blog.csdn.net/lang523493505/article/details/76644666
=================================================
pip3依赖系统内置的openssl包,先确定apt-get install openssl
You can install Python-3.6 on Debian 8 as follows:
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar xvf Python-3.6.8.tgz
cd Python-3.6.8
./configure --enable-optimizations
make
make altinstall 或者make install(试过成功了)
python3.6 -V
ln -s /usr/local/bin/python3.6 /usr/bin/python3ln -s /usr/local/bin/pip3.6 /usr/bin/pip3pip3 install redis (试过成功了)
(三)Linux下安装python3后,pip3 install 报错找不到ssl模块
Python3 越来越火,要在Linux下安装python3的需求也越来越多。。
官网 python.org 下载压缩包,解压
然后,在./configure的时候,需要加上 --enable-optimizations参数,这样才能启用很多功能。
网上看到很多人说要用 ./configure --with-ssl,这是没用的,日志上写明白了 not recognized option '--with-ssl'。
编译的时候日志跑的很快,很多人就忽略了细节,年轻人,不要慌,回去翻翻日志,你会有新发现,很多东西别人都给了提示的了。
接下来官方步骤
make && make install
重新试试
python3> import ssl
有了。
另外在编译安装git等工具时,都把 --enable-optimizations 参数带上,这样才是以“官方发布的稳定版本”编译。
参考链接:
https://blog.csdn.net/Pretendness/article/details/80032016
https://www.linuxidc.com/Linux/2019-03/157703.htm
https://www.zhihu.com/question/20092756/answer/13948057
linux下python3源码安装及卸载的更多相关文章
- Linux下Python3源码安装
1.下载 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz 2.解压 tar -xzvf Python-3.7.4.tgz 3 ...
- linux下如何源码安装expect
1.作用 自动交互.比如如果用ssh登陆服务器,每次都输入密码,然而你觉得麻烦,那你就可以使用expect来做自动交互,这样的话就不用每次都输入密码 2.依赖 依赖tcl 3.获取源码 wget ht ...
- [整理]Linux下的源码安装步骤及其功能解释
源码的安装一般由3个步骤组成:配置(./configure).编译(make).安装(make install). 这时最常用的命令就是这三个--./configure && make ...
- Linux下git源码安装【转】
转自:http://blog.csdn.net/u012889638/article/details/51167123 版权声明:本文为博主原创文章,未经博主允许不得转载. 版本信息:CentOS r ...
- linux下mysql源码安装
参考链接:http://blog.csdn.net/zqtsx/article/details/9378703 下载mysql安装包, 不会下载点这里 地址:ftp://mirror.switch.c ...
- linux下.run文件的安装与卸载
linux下.run文件的安装与卸载 .run文件的安装很简单,只需要为该文件增加可执行属性,即可执行安装 以 virtualbox 的安装文件 virtualbox-3.1.6-59338-Li ...
- Linux下Python3.6的安装及避坑指南
Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-dev ...
- RedHat7下PostGIS源码安装
本文介绍在RedHat7环境下安装使用PostGIS的流程. 1. PostgreSQL 1.1 yum安装PostgreSQL 这个比较简单,直接使用yum安装即可. $ sudo yum inst ...
- Linux 6.8 源码安装MySQL8.0
搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...
随机推荐
- WIN32常用
//1.设置窗口大小 MoveWindow(hWnd, , , + , + , FALSE); //放在InitInstance用于设置位置与窗口大小 //传递句柄就可以绘图 //2.双缓冲绘图模式 ...
- H.264标准(一)mp4封装格式详解
在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...
- javaEE的开发模式
1.什么是模式 模式在开发过程中总结出的“套路”,总结出的一套约定俗成的设计模式 2.javaEE经历的模式 model1模式: 技术组成:jsp+javaBean model1的弊端:随着业务复杂性 ...
- javascript 精确加减乘除
最近一个项目中要使用 JS 实现自动计算的功能,本以为只是实现简单的加.减.乘.除就可以了,于是三下五除二做完了. 正当我窃喜的时候,发现问题了... 进行一些浮点数运算时,计算结果都是让我大跌眼镜啊 ...
- angular.js学习-ng-grid
ng-grid是基于AngularJS和JQuery的富表格控件,由AngularUI Team领衔开发,到目前为止已有2354次Commit,1076个Fork. AngualrUI:http:/ ...
- (WC2016模拟十一)【BZOJ4695】最假女选手
ps:好久没更博啦……这几天连着有模拟赛,等初赛前后休息的时候来疯狂补坑吧……顺便补一下前面的数论啥的? 题解: mdzz我场上写了个15分暴力长度跟标算差不多... 线段树大法好啊!这题听说很多人做 ...
- vue之父子组件间通信实例讲解(props、$ref、$emit)
组件间如何通信,也就成为了vue中重点知识了.这篇文章将会通过props.$ref和 $emit 这几个知识点,来讲解如何实现父子组件间通信. 组件是 vue.js 最强大的功能之一,而组件实例 ...
- springMVC接受数组
var obj = {}; var params = new Array(); var selected1 = $('#datatable').DataTable().rows('.selected' ...
- caioj 1161 欧拉函数3:可见点数
(x, y)被看到仅当x与y互质 由此联想到欧拉函数 x=y是1个点,然后把正方形分成两半,一边是φ(n) 所以答案是2*∑φ(n)+1 #include<cstdio> #include ...
- 总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等
可视化界面的软件,是21世纪最主流的应用类型了,黑屏控制台的不适合普通用户. 2004年左右的时候,作为普通网民,接触的自然是可视化,准确是Windows那一套. 那个时候,Microsoft ...