mint19 源码安装python3.7
基于Ubuntu 18.04 自带了3.6,可惜 3.7秒出. 后面还有3.8
一个原则是:
自带的3.6不要动
防止用apt install python3-XXX时版本不对.
理由: 自带的2.7和3.6都是让操作系统自己用的;
python是linux系发行版的一部分, 在linux发行版中的地位不低于windows里Windows/文件夹下的系统工具.正因为这样,才不要随便折腾每个发行版自带的py版本.
相反,python不是windows的一部分,正因为不是,所以在windows下才可以随便安装卸载升级py都没问题.
而自己跑程序用的最新版python解释器,是为了:
用pipenv建立简单运行环境,结合sublime text3 ctrl+B 运行简单程序.
这样,简单的小程序就不需要用docker python镜像+pycharm这么重型的工具了.
3.6归操作系统, 3.7+为我自用
重在隔离.
1 安装准备
编译python源码时,可能会报错,
ModuleNotFoundError: No module named '_ctypes'
参考https://blog.csdn.net/sinat_36184075/article/details/80155392
1.1 安装
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install -y build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install -y zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install -y libssl-dev openssl
sudo apt-get install -y libffi-dev liblzma-dev
参考https://tecadmin.net/install-python-3-7-on-ubuntu-linuxmint/
sudo apt-get install -y build-essential checkinstall
sudo apt-get install -y libreadline-gplv2-dev libncursesw5-dev libssl-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
1.2 编译openssl
因为之前编译python3.7之后遇到了 import ssl 报错 或者使用pika的时候
ModuleNotFoundError: No module named '_ssl'
说明编译python时, openssl 没有配置对
为了保险,还是建议自己先编译一下openssl
https://www.cnblogs.com/xuanmanstein/p/11547505.html
2下载编译安装
2.1下载
注意小版本号可能升级(注意浏览py官网新版本源码发布地址:https://www.python.org/downloads/source/)
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz --no-check-certificate
sudo tar xzf Python-3.8.2.tgz
2.2 编译/安装
删除 pip virtualenvs 缓存
rm -rf ~/.cache/piprm -rf ~/.local/share/virtualenvs
编译安装
cd /usr/src/Python-3.8.
sudo ./configure --enable-shared --enable-optimizations --with-openssl=/usr/src/openssl-1.1.1d
sudo make
sudo make altinstall
sudo ldconfig /usr/local/lib
注意带上 --enable-shared, 因为编译geos等库时可能需要, ubuntu自带的3.6也是带的
altinstall 保证没有替换系统自带的python3版本
必须有 ldconfig 这句,不然启动时会报错
python3.8: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory
用
python3.8
可以启动. 表示编译成功
mint19 源码安装python3.7的更多相关文章
- centos7源码安装Python3的前提条件
centos7源码安装Python3的前提条件: # yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline- ...
- CentOS7 下源码安装 python3
CentOS 7 下源码安装 python3 在CentOS7下,默认安装的是python2.7:为满足项目要求,安装python3 的方法如下: 1. 首先安装python3.6可能使用的依 ...
- 源码安装Python3
源码安装Python3 一.安装Python3需要的依赖包 [root@localhost ~]# yum install -y gcc make wget openssl openssl-devel ...
- CentOS6.5源码安装python3.5.2
前提: 1.实现自动补全需要安装模块 readline-devel (yum install -y readline-devel) 2.实现支持SSL协议需安装模块 openssl-devel (yu ...
- Centos源码安装Python3
CentOS7默认安装了python2.7.5,当需要使用python3的时候,可以手动下载Python源码后编译安装. 下载python(https://www.python.org/ftp/pyt ...
- Linux 源码安装 Python3
下载源码包https://www.python.org/downloads/ 解压(以3.64版本为例)wget https://www.python.org/ftp/python/3.6.4/Pyt ...
- centos7 源码安装python3
1.非常重要!必须得先安装py3所依赖的软件包,否则可能会出现py3安装成功,却缺少相应的pip yum groupinstall "Development tools" yum ...
- ubuntu16.04 源码安装Python3.7 (可以在此基础上安装Tensorflow) (确保Tensorflow计算框架与系统的彻底隔离)
Python3.7 源码下载: https://www.python.org/downloads/release/python-370/ 解压源码: tar -zxvf Python-3.7.0.tg ...
- CentOS 7.2 源码安装Python3.6
1.环境 安装CentOS 7.2最小系统(CentOS-7-x86_64-Minimal-1511.iso) 2.需求 Python-3.6.4.tar.xz(官网下载) GCC(yum安装) 一堆 ...
随机推荐
- centos6安装多实例mysql
centos 6.5,使用二进制安装多实例mysql 5.5.60 所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz.ncurses-devel-5.7- ...
- P5290 [十二省联考2019]春节十二响(堆+启发式合并)
P5290 [十二省联考2019]春节十二响 从特殊到一般 我们先看链的情况. 我们把点$1$左右的两条子链分别扔入堆里 每次取出两个堆的最大值,把答案累加上更大的那个(另一堆为空则直接加上去). 那 ...
- visual studio 2015下使用gcc调试linux c++开发环境搭建完整详解
一直以来,相信绝大部分的开发都是windows/mac下做开发,尤其是非嵌入式和qt系的,而开源服务器程序绝大部分都是跑在Linux下,几乎就没有跑在windows下的.一直以来开发人员都是在wind ...
- AMQP 0.9.1和1.0协议差别以及rabbitmq支持情况
RabbitMQ implements AMQP 1.0 via a plugin. However, AMQP 1.0 is a completely different protocol than ...
- kali linux Burp Suite使用教程
设置Firefox并配置代理 配置Firefox Burp Suite包含拦截代理. 要使用Burp Suite,您必须配置浏览器以通过Burp Suite代理传递其流量. 这对于Firefox来说并 ...
- 20145320《网络对抗》注入Shellcode并执行
20145320注入Shellcode并执行 准备一段Shellcode 首先先准备一段C语言代码:这段代码其实和我们的shell功能基本一样 为了之后能够看到反汇编的结果,这次采用的静态编译.正常返 ...
- Codeforces Round #483 (Div. 2)题解
A. Game time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...
- 【Spring Security】六、自定义认证处理的过滤器
这里接着上一章的自定义过滤器,这里主要的是配置自定义认证处理的过滤器,并加入到FilterChain的过程.在我们自己不在xml做特殊的配置情况下,security默认的做认证处理的过滤器为Usern ...
- Trimmomatic过滤Illumina低质量序列
1. 下载安装 直接去官网下载二进制软件,解压后的trimmomatic-0.36.jar即为我们需要的软件 官网: http://www.usadellab.org/cms/index.php?pa ...
- Java 11 究竟比 8 快了多少?看看这个基准测试
开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告. 当前使用量最大的 Java 版本是 8,所以测试者用 Java 8 与 Java 11 进行对比测试 ...