重新编译覆盖安装ubuntu16.04自带的python3.6.2

一次性解决以下报错:

zipimport.ZipImportError: can't decompress data; zlib not available

RuntimeError: Compression requires the (missing) zlib module

ImportError: No module named _ssl

ModuleNotFoundError: No module named 'setuptools'

背景:

自带的不好用,没有pip,尝试安装pip报zlib的错,然后改为下载pip源码的方式安装,报没有setuptools的错,尝试下载源码方式安装setuptools,还是报zlib的错!!

跟zlib杠上了。

查阅资料得知需要重新编译python(在编译的时候加入 --with-zlib=/usr/include之类的东西)才可以。万般无奈,下载和系统自带的一样版本的python(3.6.2),找到系统自带python3.6.2的安装位置,重新编译覆盖安装它。编译过程中加入 --with-ssl应该能顺手解决没有ssl的问题。

干:

查看原来自带的python 3.6.2位置

$ which python3.6
/usr/local/bin/python3.6
查看版本:

$ python3.6
Python 3.6.2 (default, Apr  4 2020, 22:47:48) 
[GCC 5.4.0 20160609] on linux

1,手动下载python3.6.2

$ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
$ tar -xvzf Python-3.6.2.tgz
$ cd Python-3.6.2

安装路径怎么选择?根据前面的信息,当前python3.6.2的安装位置为:/usr/local。不要搞成了/usr/local/bin/python3.6

2,编译安装

$ ./configure --with-ssl --prefix=/usr/local --with-zlib=/usr/include

$ ./configure --with-ssl --prefix=/usr/local --with-zlib=/usr/local/lib

$ make -j8

$ sudo make install

搞定,解决zlib问题,解决上述pip、setup_tools、zlib安装的问题:

$ python3.6
Python 3.6.2 (default, Apr 15 2020, 17:42:54) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import zlib
>>> import ssl
>>> import pip


安装python3.6.2依赖
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev

感谢:

https://www.jb51.net/article/152486.htm

https://blog.csdn.net/wbiblem/article/details/72598245

发布了202 篇原创文章 · 获赞 80 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/qxqxqzzz/article/details/105538978