我想安装一个python模块,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命!网上调研一番后,发现直接从python的官网下载最新的python3.7的源码来升级python3这个思路是最可行的办法。因为python3只是一个python3.5中python3命令指向的符号链接,可以非常轻易地修改它。
可以看出,目前python官网上最新的python3版本是3.7.3。最后即使安装了python3.7版本之后也不要删除python2.7和python3.5版本,防止后面ubuntu系统中的依赖丢失。
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev
sudo apt-get install liblzma-dev libffi-dev libc6-dev
从python官网下载
方法一:https://www.python.org/downloads/release/python-373/
方法二:wget ‘https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz’
tar zxvf Python-3.7.3.tgz
cd Python-3.7.3
sudo mkdir -p /usr/local/python3
./configure --prefix=/usr/local/python3 --enable-optimizations
make
sudo make install
删除软链接
先执行查看版本,如果有则证明软链接已存在,需要先删去以前的再重新建立
sudo rm -rf /usr/bin/python3
sudo rm -rf /usr/bin/pip3
建立新的软连接
#添加python3的软链接
sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
#添加 pip3 的软链接
sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
#安装对应的pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3 -V
pip3 -V
查看python3的版本号
绝大数开源软件都是公布源代码的,源代码一般被打包为tar.gz归档压缩文件,然后手工编译为二进制可执行文件
./configure 检查编译环境/相关库文件/配置参数,生成makefile
make 对源代码进行编译,生成可执行文件
make install 将生成的可执行文件安装到当前计算机中特点;
兼容性好/可控制性好/开源软件会大量使用其他开源软件的功能,要解决大量的依赖关系
安装python37报错:ModuleNotFoundError: No module named ‘_ctypes’
1.zipimport.ZipImportError: can’t decompress data; zlib not available Makefile:1130: recipe for target ‘install’ failed make: *** [install] Error 1
解决办法:
安装zlib1g-dev
sudo apt install zlib1g-dev
2.ModuleNotFoundError: No module named ‘_ctypes’
Makefile:1130: recipe for target ‘install’ failed
make: *** [install] Error 1
解决办法:
方法一:
sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev
sudo apt-get install libffi-dev libssl-dev libreadline-dev -y
方法二:
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-dev
然后从./configure --prefix=/usr/local/python3 --enable-optimizations
步骤开始重新安装。
终端打不开的问题:
将ubuntu自带的python3.5 升级为3.7,并且换了软连接。python 连接为python3.7,发生了终端打不开的问题。
1.Ctrl + Alt + f1
2.打开/usr/bin/gnome-terminal
将首行的 #!/usr/bin/python3
修改为 #!/usr/bin/python3.5
cd /usr/lib/python3/dist-packages/gi/
下面的35 改成37 表示从py3.5 改到py3.7,如果安装的是3.6就改成36
sudo cp _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-37m-x86_64-linux-gnu.so
sudo cp _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-37m-x86_64-linux-gnu.so
subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
解决方法
find / -name lsb_release
rm -rf /usr/bin/lsb_release
借鉴:https://www.cnblogs.com/momolei/p/9895218.html
https://www.jianshu.com/p/81e65f237368