IPython 控制台找不到 "backports.shutil_get_terminal_size" 并且不会加载
IPython console can't locate "backports.shutil_get_terminal_size" and won't load
我 运行ning Python2.7 在 windows 10 上使用 Anaconda 进行环境和大多数 pkg 管理。升级多个软件包后,我的 ipython 控制台现在无法在任何 IDE 或控制台中启动。当我尝试在控制台 运行 它时,出现此错误:
Traceback (most recent call last):
File "C:\Anaconda3\Scripts\ipython-script.py", line 3, in <module>
import IPython
File "C:\Anaconda3\lib\site-packages\IPython\__init__.py", line 48, in <module>
from .core.application import Application
File "C:\Anaconda3\lib\site-packages\IPython\core\application.py", line 24, in <module>
from IPython.core import release, crashhandler
File "C:\Anaconda3\lib\site-packages\IPython\core\crashhandler.py", line 28, in <module>
from IPython.core import ultratb
File "C:\Anaconda3\lib\site-packages\IPython\core\ultratb.py", line 121, in <module>
from IPython.utils.terminal import get_terminal_size
File "C:\Anaconda3\lib\site-packages\IPython\utils\terminal.py", line 27, in <module>
import backports.shutil_get_terminal_size
ImportError: No module named backports.shutil_get_terminal_size
我尝试做的第一件事是:
pip install --upgrade backports.shutil_get_terminal_size
输出:
Requirement already up-to-date: backports.shutil_get_terminal_size in c:\anaconda3\lib\site-packages
我已经卸载并重新安装了 ipython
conda uninstall ipython
conda install ipython
和
pip uninstall ipython
pip install ipython
还是不行。请帮忙!
试试这个
conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size
我在 CentOS 7 上,我需要更改我的 terminal.py,如下所示。
在导入语句中我弄乱了前缀并让它工作 -
import os
import sys
import warnings
try:
from backports import get_terminal_size as _get_terminal_size
except ImportError:
# use backport on Python 2
from shutil_backports import get_terminal_size as _get_terminal_size
根据 this thread this is due to a bug in conda 这导致与 pip 安装冲突,可以通过强制重新安装来解决。对于线程作者,$ conda install --force ipython
解决了问题,对我来说是 $ conda install --force backports
。
- 适用于 Anaconda Python 版本 Anaconda2-4.2.0-Linux-x86_64.sh
- 编辑文件并删除 "try" 和 "except" 导入语句
- 在新的导入语句中添加
- 更新配置解析器 => ./conda install configparser
安装 nbbrowserpdf => .pip 安装 nbbrowserpdf
vim +22 /home/alienone/anaconda2/lib/python2.7/site-packages/IPython/utils/terminal.py
from backports import shutil_get_terminal_size as _get_terminal_size
唯一对我有用的是从 pypi 下载 tarball 和 运行 python setup.py install
效果很好
Virtualenv 在这种情况下非常有用,更具体地说,是一个不允许全局站点包的 virtualenv。只需在隔离的 virtualenv 中进行全新安装即可排除许多原因。
根据我的经验,IPython 及其依赖项确实希望位于同一站点中。如果您全局安装了 backports 包,但 IPython 安装在用户漫游站点中,您可能会遇到运行时导入错误,例如 OP 中描述的错误。
我意识到有时我们需要全局站点包,但代价是更复杂 site
和 pip/setuptools 内的依赖性处理。根据几个 python 配置和 windows 环境条件,您的包可能分布在全球站点、用户(漫游)站点和 virtualenv 站点。
通过在无法访问全局或用户包的 virtualenv 中构建和安装 clean 来排除奇怪的 site
问题。 virtualenvwrapper 和 add2virtualenv
命令可用于完全允许某些全局包。
万一这对任何人都有帮助,我的问题似乎是在本地安装了 configparser
和 pip,然后尝试使用 conda 安装其他所有东西。修复:
pip uninstall configparser
# You may need to install configparser now using conda...
ipython
# No ImportError now.
似乎 configparser 安装在导入命名空间中放置了一个 backports 包,它优先于 conda 安装包。
我 运行ning Python2.7 在 windows 10 上使用 Anaconda 进行环境和大多数 pkg 管理。升级多个软件包后,我的 ipython 控制台现在无法在任何 IDE 或控制台中启动。当我尝试在控制台 运行 它时,出现此错误:
Traceback (most recent call last):
File "C:\Anaconda3\Scripts\ipython-script.py", line 3, in <module>
import IPython
File "C:\Anaconda3\lib\site-packages\IPython\__init__.py", line 48, in <module>
from .core.application import Application
File "C:\Anaconda3\lib\site-packages\IPython\core\application.py", line 24, in <module>
from IPython.core import release, crashhandler
File "C:\Anaconda3\lib\site-packages\IPython\core\crashhandler.py", line 28, in <module>
from IPython.core import ultratb
File "C:\Anaconda3\lib\site-packages\IPython\core\ultratb.py", line 121, in <module>
from IPython.utils.terminal import get_terminal_size
File "C:\Anaconda3\lib\site-packages\IPython\utils\terminal.py", line 27, in <module>
import backports.shutil_get_terminal_size
ImportError: No module named backports.shutil_get_terminal_size
我尝试做的第一件事是:
pip install --upgrade backports.shutil_get_terminal_size
输出:
Requirement already up-to-date: backports.shutil_get_terminal_size in c:\anaconda3\lib\site-packages
我已经卸载并重新安装了 ipython
conda uninstall ipython
conda install ipython
和
pip uninstall ipython
pip install ipython
还是不行。请帮忙!
试试这个
conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size
我在 CentOS 7 上,我需要更改我的 terminal.py,如下所示。
在导入语句中我弄乱了前缀并让它工作 -
import os
import sys
import warnings
try:
from backports import get_terminal_size as _get_terminal_size
except ImportError:
# use backport on Python 2
from shutil_backports import get_terminal_size as _get_terminal_size
根据 this thread this is due to a bug in conda 这导致与 pip 安装冲突,可以通过强制重新安装来解决。对于线程作者,$ conda install --force ipython
解决了问题,对我来说是 $ conda install --force backports
。
- 适用于 Anaconda Python 版本 Anaconda2-4.2.0-Linux-x86_64.sh
- 编辑文件并删除 "try" 和 "except" 导入语句
- 在新的导入语句中添加
- 更新配置解析器 => ./conda install configparser
安装 nbbrowserpdf => .pip 安装 nbbrowserpdf
vim +22 /home/alienone/anaconda2/lib/python2.7/site-packages/IPython/utils/terminal.py
from backports import shutil_get_terminal_size as _get_terminal_size
唯一对我有用的是从 pypi 下载 tarball 和 运行 python setup.py install
效果很好
Virtualenv 在这种情况下非常有用,更具体地说,是一个不允许全局站点包的 virtualenv。只需在隔离的 virtualenv 中进行全新安装即可排除许多原因。
根据我的经验,IPython 及其依赖项确实希望位于同一站点中。如果您全局安装了 backports 包,但 IPython 安装在用户漫游站点中,您可能会遇到运行时导入错误,例如 OP 中描述的错误。
我意识到有时我们需要全局站点包,但代价是更复杂 site
和 pip/setuptools 内的依赖性处理。根据几个 python 配置和 windows 环境条件,您的包可能分布在全球站点、用户(漫游)站点和 virtualenv 站点。
通过在无法访问全局或用户包的 virtualenv 中构建和安装 clean 来排除奇怪的 site
问题。 virtualenvwrapper 和 add2virtualenv
命令可用于完全允许某些全局包。
万一这对任何人都有帮助,我的问题似乎是在本地安装了 configparser
和 pip,然后尝试使用 conda 安装其他所有东西。修复:
pip uninstall configparser
# You may need to install configparser now using conda...
ipython
# No ImportError now.
似乎 configparser 安装在导入命名空间中放置了一个 backports 包,它优先于 conda 安装包。