解决Ubantu19.04环境下python3.7安装ipython3启动报错

在Ubantu 19.04环境中,安装ipython3后启动遇到错误,原因是prompt_toolkit版本过高。通过降级prompt_toolkit到低版本解决了该问题,但此操作导致pgcli无法使用。为避免类似冲突,建议使用虚拟环境。

问题:

安装ipython3的过程后,启动ipython3发现启动报错!具体问题如下

sudo apt install ipython3
***@ubuntu19-04-***:~$ ipython3
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/IPython/__init__.py", line 49, in <module>
    from .terminal.embed import embed
  File "/usr/lib/python3/dist-packages/IPython/terminal/embed.py", line 18, in <module>
    from IPython.terminal.interactiveshell import TerminalInteractiveShell
  File "/usr/lib/python3/dist-packages/IPython/terminal/interactiveshell.py", line 20, in <module>
    from prompt_toolkit.shortcuts import create_prompt_application, create_eventloop, create_prompt_layout, create_output
ImportError: cannot import name 'create_prompt_application' from 'prompt_toolkit.shortcuts' (/usr/local/lib/python3.7/dist-packages/prompt_toolkit/shortcuts/__init__.py)

解决方法:经过查找资料发现是ipython依赖的核心库prompt_toolkit版本过高引起的,
可能是prompt_toolkit高版本移除的旧方法依然被ipython引用,安装低版本prompt_toolkit后问题解决!

#重新安装低版本:prompt_toolkit==2.0.9  ===>prompt_toolkit==1.0.15
sudo pip3 uninstall prompt_toolkit  #卸载
sudo pip3 install prompt_toolkit==1.0.15 #低版本安装
***@ubuntu19-04-***:~$ ipython3
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
Type "copyright", "credits" or "license" for more information.

IPython 5.8.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 1+2
Out[1]: 3

In [2]: 

=================================
问题来了,发现pgcli不能用了,真的服,又把版本升级了回去,碰到这种情况,大家还是用虚拟环境吧!

问题解决!
感谢:罗罗诺亚路飞-的博客

### 安装 Python 3.7 并实现多版本共存 为了在不影响现有 Python 环境的情况下安装 Python 3.7,可以通过添加额外的 PPA 来获取所需的 Python 版本。这不会影响系统的默认 Python 设置。 #### 添加 PPA 源并更新包列表 首先,需要确保 `software-properties-common` 已经被安装以便能够管理PPA源: ```bash sudo apt install software-properties-common -y ``` 接着,添加 deadsnakes 提供的 PPA 源来获得不同版本的 Python 支持,并刷新本地软件仓库缓存: ```bash sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update ``` #### 安装 Python 3.7 及其开发工具链 通过 APT 命令行工具安装特定版本的 Python 和必要的库文件: ```bash sudo apt install python3.7 python3.7-dev python3.7-distutils -y ``` 此时已经成功安装Python 3.7,但为了避免干扰到系统预设的 Python 路径以及相关依赖关系,推荐使用虚拟环境来进行项目级别的 Python 版本控制。 #### 创建和激活虚拟环境 利用 pip 或者直接下载最新版的 virtualenv 库来构建隔离的工作区: ```bash pip install --user virtualenv virtualenv my_project_env --python=python3.7 source my_project_env/bin/activate ``` 当处于活动状态时,该终端内的任何 Python 操作都将基于所选中的解释器实例运行;退出此模式只需输入 deactivate 即可返回全局上下文中去[^2]。 对于希望更方便地切换不同版本之间的情况,则可以考虑借助 pyenv 这样的第三方解决方案进一步简化流程。 #### 使用 PyEnv 实现便捷切换 PyEnv 是一款用于管理和快速切换多个 Python 版本的强大工具。它允许用户轻松定义每个项目的具体需求而无需担心污染主机操作系统上的配置。 安装过程如下所示: 1. 克隆官方 GitHub 仓库至家目录下; 2. 修改 shell 配置文件(如 `.bashrc`,`.zshrc`) 加入初始化脚本路径; 3. 利用 pyenv 命令集完成后续操作比如安装新版本、设定局部或全局偏好等。 这种方法不仅限于 Ubuntu 发行版,适用于大多数 Linux 类 Unix 系统之上。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苗清水

如有帮助,求打赏哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值