我在Windows 10上运行Python2.7,使用Anaconda进行env和大多数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
我已经用两个
卸载并重新安装了ipythonconda uninstall ipython
conda install ipython
和
pip uninstall ipython
pip install ipython
仍然行不通。求救!
答案 0 :(得分:30)
试试这个
conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size
答案 1 :(得分:5)
根据this thread,这是由于bug in conda导致与pip安装的冲突,并且可以通过强制重新安装来解决。对于帖子作者,$ conda install --force ipython
解决了这个问题,对我而言是$ conda install --force backports
。
答案 2 :(得分:4)
我在CentOS 7上,我需要更改我的terminal.py,如下所示。
在导入语句中,我用前缀搞砸了并让它起作用 -
{{message['email-body']}}
答案 3 :(得分:1)
安装nbbrowserpdf =&gt; .pip install nbbrowserpdf
vim +22 /home/alienone/anaconda2/lib/python2.7/site-packages/IPython/utils/terminal.py
从backports导入shutil_get_terminal_size为_get_terminal_size
答案 4 :(得分:0)
唯一对我有用的是从pypi下载tarball并运行python setup.py install
它像魅力一样
答案 5 :(得分:0)
Virtualenv在这样的情况下可以证明是非常有用的,更具体地说,一个不允许全局站点包的virtualenv。只需在隔离的virtualenv中进行干净安装即可排除多种原因。
根据我的经验,IPython及其依赖项确实想要在同一个站点中。如果您在全局安装了backports软件包但在用户漫游站点中安装了IPython,则可能会出现运行时导入错误,例如OP中描述的错误。
我意识到有时候我们需要全局站点包,但惩罚是一个更复杂的site
和pip / setuptools中的依赖项处理。根据几个python配置和Windows环境条件,您的包可能分布在全球站点,用户(漫游)站点和virtualenv站点上。
通过在virtualenv中构建和安装clean而无法访问全局或用户包来排除奇怪的site
问题。 virtualenvwrapper和add2virtualenv
命令可用于干净地允许某些全局包。
答案 6 :(得分:0)
如果这有助于任何人,我的问题似乎是在本地安装了configparser
pip,然后尝试使用conda安装其他所有内容。修复:
pip uninstall configparser
# You may need to install configparser now using conda...
ipython
# No ImportError now.
似乎configparser安装将一个backports包放在import命名空间中,该命名空间优先于conda安装包。