Ubuntu 18.04 安装Python 3.7以及安装后打不开terminal及找不到apt_pkg的解决方法

Ubuntu 16.04可以通过添加PPA库来安装python 3.7,也可以通过源码编译安装,CSDN大佬们早就出了一大堆有关的帖子,此处不谈。

升级到Ubuntu 18.04,apt源自带了python 3.7,直接通过sudo apt-get install python 3.7安装即可

但,问题来了!!

不管是以前从python 3.5升级到python 3.6,还是从3.6到3.7,或者直接从3.5到3.7,升级之后基本上会遇到下面几个问题:

1. 命令行输python 3打开的还是python 3.6

这个单纯的时因为没有把python 3.7链接过去,需要更新python 3.7为python3的解释器

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 50
sudo update-alternatives --config python3  
# 此处手动选择python3或者Ubuntu会设置python 3.7为自动模式

2. 经过第一步后terminal打不开了

真的只是因为python 3.7的原因!

terminal来自于每个Ubuntu发行版自带的gnome-terminal脚本,位置在/usr/bin/gnome-terminal,通过vim或者gedit查看可以看到

#! /usr/bin/python3

就在此处,仅仅修改上面一句为

#! /usr/bin/python3.6

就能使terminal回归。

terminal在开发阶段使用的是自带的python 3.6/3.5解释器,当升级到python 3.7之后,其中的一些内建函数或者语法发生了变化,导致terminal打不开了,一般情况下可以通过

sudo apt-get install gnome-terminal

更新terminal来解决问题,有时候重新安装并没有解决问题,是因为当前Ubuntu版本对应的源里面没有更新版的terminal,可以使用上述修改解释器的方式临时解决。

3. 惊了!apt_pkg找不见了

ImportError: No module named 'apt_pkg'

该报错会发生在执行sudo apt-get update / install,pip install,import modules时。

apt_pkg包来自于python_apt或python3_apt,同2,Ubuntu发行版对应了一个python 3.x的版本,而不是更高的版本,在很大程度上可以说明更高版本的python会带来问题,这里的问题就是因为dist包中的apt_pkg.cython.*.so库版本无法对应。

如果是python 3.5升级了python 3.6,或者是从低版本升级到3.5时,可以使用

sudo apt-get install python3-apt --reinstall

解决,在常规的Ubuntu源中,可能有对应了python 3.5和3.6的apt_pkg的so库,可能可以解决,但是针对如此多的Ubuntu版本(即使同为16.04可能对应了不同的子版本),或许真的运气很不好,只能通过下述方法进行尝试。

python 3.7临时解决apt_pkg,适用于3.6和3.5.

apt_pkg的cython包在

cd /usr/lib/python3/dist-packages

目录下,ls过后可以找到apt_get.cython-(34m, 35m, 36m)-x86_64-linux-gnu.so文件,这里的括号是指可能存在的版本,即可能有34或35或36,假设我们拥有了apt_get.cython-36m-x86_64-linux-gnu.so,目标python版本是3.7

ln -s apt_get.cython-{36m,37m}-x86_64-linux-gnu.so
# {36m,37m}是一种ln -s的简化写法,从36m链接到37m但其余字符不变

ls后可以看到有了目标的apt_get.cython-37m-x86_64-linux-gnu.so库文件,此时执行sudo apt-get update不会再报出apt_pkg找不到的问题,继而可以

sudo apt-get install python3-pip

这也只是一种临时解决方案,本着“能用就行”的原则,够了。

 

按照Ubuntu 16.04到18.04官方源变化的趋势,官方肯定会在下一个大版本中放出更优雅的解决方案。

emmmmmmm,愚人拙见,还请指正。

回答: 在Ubuntu 18.04系统中安装Python 3.7可以按照以下步骤进行操作。首先,需要执行系统升级来确保系统是最新的版本。可以使用以下命令执行升级: sudo apt update sudo apt upgrade -y 接下来需要安装编译Python源程序所需的包。可以使用以下命令安装这些包: sudo apt install build-essential -y sudo apt install libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev -y sudo apt-get install zlib1g-dev 然后,需要下载Python 3.7的源程序压缩包。可以使用wget命令下载: wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 接着,需要解压缩下载的压缩包。可以使用以下命令进行解压缩: tar -xzvf Python-3.7.1.tgz 然后进入解压缩后的目录,并进行配置: cd Python-3.7.1 ./configure --enable-optimizations 配置完成后,可以使用make命令编译并安装Python 3.7: make sudo make install 最后,可以将python3指向Python 3.7版本。可以使用以下命令进行设置: sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.7 1 这样,Python 3.7安装完成了,并且python3命令将指向Python 3.7版本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ubuntu18.04安装python3.7并将python3指向python3.7](https://blog.csdn.net/yiyu3344/article/details/90102410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [【PythonUbuntu 18.04 安装 python3.7](https://blog.csdn.net/qq_35933777/article/details/84325856)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值