Ubuntu18.04预装了Python3.6.5
终于不再预装Python2.7了
但是系统预装的Python分散安装在各个目录里
以后改起来非常不方便
所以本次安装Python3.6.8
Python3.6.8是3.6的最后一个版本了
请注意不要卸载系统预装的Python
sudo apt install openssl* zlib*
安装依赖
sudo wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
从官网下载源码
sudo tar -xzvf Python-3.6.8.tgz
解压
cd Python-3.6.8
进入源码目录
sudo ./configure --prefix=/usr/local/python --with-ssl --enable-optimizations
安装到/usr/local/python目录
不用事先创建python目录
sudo make
编译
sudo make install
安装
等待一会儿
安装完成后删除源码压缩包与文件夹
sudo ln -s /usr/local/python/bin/python3.6 /usr/bin/python
sudo ln -s /usr/local/python/bin/pip3.6 /usr/bin/pip
创建python与pip软连接
安装python3.7时候,报错ModuleNotFoundError: No module named '_ctypes'
1. zipimport.ZipImportError: can’t decompress data; zlib not available
Traceback (most recent call last):
File "/home/wfq/soft/Python-3.7.0b3/Lib/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/wfq/soft/Python-3.7.0b3/Lib/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__main__.py", line 5, in <module>
sys.exit(ensurepip._main())
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__init__.py", line 204, in _main
default_pip=args.default_pip,
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__init__.py", line 117, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1123456789101112131415
现在zlib,编译,make && make install
安装zlib即可,zlib-1.2.11
2. ModuleNotFoundError: No module named ‘_ctypes’
Traceback (most recent call last):
File "/home/wfq/soft/Python-3.7.0b3/Lib/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/wfq/soft/Python-3.7.0b3/Lib/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__main__.py", line 5, in <module>
sys.exit(ensurepip._main())
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__init__.py", line 204, in _main
default_pip=args.default_pip,
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__init__.py", line 117, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/home/wfq/soft/Python-3.7.0b3/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip
File "/tmp/tmpnfe1bbxk/pip-9.0.3-py2.py3-none-any.whl/pip/__init__.py", line 45, in <module>
File "/tmp/tmpnfe1bbxk/pip-9.0.3-py2.py3-none-any.whl/pip/vcs/mercurial.py", line 9, in <module>
File "/tmp/tmpnfe1bbxk/pip-9.0.3-py2.py3-none-any.whl/pip/download.py", line 36, in <module>
File "/tmp/tmpnfe1bbxk/pip-9.0.3-py2.py3-none-any.whl/pip/utils/glibc.py", line 4, in <module>
File "/home/wfq/soft/Python-3.7.0b3/Lib/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
make: *** [install] Error 1123456789101112131415161718192021
解决方法:
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
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev12345678
再重新编译安装python3.7即可成功
参考:https://stackoverflow.com/questions/27022373/python3-importerror-no-module-named-ctypes-when-using-value-from-module-mul