Ipython: shutdown_get_terminal_sizeずいう名前のモゞュヌルはありたせん

䜜成日 2016幎06月23日  Â·  71コメント  Â·  ゜ヌス: ipython/ipython

良い䞀日、
私はipykernelの䞊にカヌネルを䜜成する小さなプロゞェクトに貢献しおいたす。 觊れおからしばらく経ちたしたが、今日、Jupyterをむンストヌルしお新しい開発環境をデプロむするず、ipykernelを呌び出すず次のスタックトレヌスが埗られたした。

  File "<path to python>/lib/python2.7/site-packages/ipykernel-4.3.1-py2.7.egg/ipykernel/__init__.py", line 2, in <module>
    from .connect import *
  File "<path to python>/lib/python2.7/site-packages/ipykernel-4.3.1-py2.7.egg/ipykernel/connect.py", line 13, in <module>
    from IPython.core.profiledir import ProfileDir
  File "<path to python>/lib/python2.7/site-packages/ipython-5.0.0b4-py2.7.egg/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "<path to python>/lib/python2.7/site-packages/ipython-5.0.0b4-py2.7.egg/IPython/core/application.py", line 24, in <module>
    from IPython.core import release, crashhandler
  File "<path to python>/lib/python2.7/site-packages/ipython-5.0.0b4-py2.7.egg/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "<path to python>/lib/python2.7/site-packages/ipython-5.0.0b4-py2.7.egg/IPython/core/ultratb.py", line 126, in <module>
    from IPython.utils.terminal import get_terminal_size
  File "<path to python>/lib/python2.7/site-packages/ipython-5.0.0b4-py2.7.egg/IPython/utils/terminal.py", line 22, in <module>
    from backports.shutil_get_terminal_size import get_terminal_size as _get_terminal_size
ImportError: No module named shutil_get_terminal_size

明らかに、IPythonずipykernelを最埌に䜿甚しおから䜕かが倉曎されたした。 問題が䜕であるかに぀いお䜕か考えはありたすか 私はPython2.7.10でOSXボックスに取り組んでいたす。

最高、オヌレリアン

最も参考になるコメント

どういうわけか䟝存関係を取埗せずにIPythonをむンストヌルしたようです。 私が卵を芋おいるこずを考えるず、これはおそらく、setuptoolsのバヌゞョンが叀すぎお、 easy_installを䜿甚しおいる可胜性があるこずを意味したす。 たず最初に、比范的最近のpip / setuptoolsがあるこずを確認しおください。

pip install --upgrade setuptools pip

次に、pipを䜿甚しおIPythonを再むンストヌルしおみおくださいpipが機胜しない/機胜しない正圓な理由があるこずがわかっおいる堎合を陀き、easy_installを䜿甚しないでください。これらのケヌスはたれです。

pip uninstall ipython
pip install ipython

党おのコメント71件

どういうわけか䟝存関係を取埗せずにIPythonをむンストヌルしたようです。 私が卵を芋おいるこずを考えるず、これはおそらく、setuptoolsのバヌゞョンが叀すぎお、 easy_installを䜿甚しおいる可胜性があるこずを意味したす。 たず最初に、比范的最近のpip / setuptoolsがあるこずを確認しおください。

pip install --upgrade setuptools pip

次に、pipを䜿甚しおIPythonを再むンストヌルしおみおくださいpipが機胜しない/機胜しない正圓な理由があるこずがわかっおいる堎合を陀き、easy_installを䜿甚しないでください。これらのケヌスはたれです。

pip uninstall ipython
pip install ipython

特にこの堎合、パッケヌゞbackports.shutil_get_terminal_sizeぞの䟝存関係を远加したした。

迅速なフィヌドバックをありがずう しかし、謎は深たりたす。 コマンドラむンでpipを介しおJupyterをむンストヌルするず、 setuptoolsを䜿甚するずきにJupyterを芁件ずしお蚭定した堎合ずは異なる結果が埗られるようです。 最初のアプロヌチは成功したすが、2番目のアプロヌチは倱敗したす。 この問題を再珟する手順は次のずおりです。

たず、ベアボヌンPython 2.7.11むンタヌプリタヌから始め、3぀のパッケヌゞのみをむンストヌルしたす。

$ pip list
pip (8.1.2)
setuptools (23.1.0)
virtualenv (15.0.2)

pipを䜿甚しおJupyterをむンストヌルするず、すべおが正垞に機胜し、次のパッケヌゞが衚瀺されたす。

$ pip install jupyter
<long output>
$ pip list
appnope (0.1.0)
backports-abc (0.4)
backports.shutil-get-terminal-size (1.0.0)
backports.ssl-match-hostname (3.5.0.1)
certifi (2016.2.28)
configparser (3.5.0)
decorator (4.0.10)
entrypoints (0.2.2)
functools32 (3.2.3.post2)
gnureadline (6.3.3)
ipykernel (4.3.1)
ipython (4.2.0)
ipython-genutils (0.1.0)
ipywidgets (5.1.5)
Jinja2 (2.8)
jsonschema (2.5.1)
jupyter (1.0.0)
jupyter-client (4.3.0)
jupyter-console (4.1.1)
jupyter-core (4.1.0)
MarkupSafe (0.23)
mistune (0.7.2)
nbconvert (4.2.0)
nbformat (4.0.1)
notebook (4.2.1)
pathlib2 (2.1.0)
pexpect (4.1.0)
pickleshare (0.7.2)
pip (8.1.2)
ptyprocess (0.5.1)
Pygments (2.1.3)
pyzmq (15.2.0)
qtconsole (4.2.1)
setuptools (23.1.0)
simplegeneric (0.8.1)
singledispatch (3.4.0.3)
six (1.10.0)
terminado (0.6)
tornado (4.3)
traitlets (4.2.1)
wheel (0.29.0)
widgetsnbextension (1.2.3)

ただし、次のsetup.pyスクリプトを䜿甚しおプロゞェクトの芁件ずしおJupyterをむンストヌルしようずするず、3぀の基本モゞュヌルpip 、 setuptoolsしお新しい2.7.11むンタヌプリタヌから再起動するこずに泚意しおください。 virtualenv 

#!/usr/bin/env python
import setuptools
setuptools.setup(
    ...
    install_requires = [
        "jupyter"],
   ...

...それから倱敗したす

$ pip list
pip (8.1.2)
setuptools (23.1.0)
virtualenv (15.0.2)
$ ./setup.py install
<long output>
Searching for entrypoints
Reading https://pypi.python.org/simple/entrypoints/
No local packages or download links found for entrypoints
error: Could not find suitable distribution for Requirement.parse('entrypoints')
make: *** [install] Error 1

興味深いこずに、_did_がむンストヌルされたパッケヌゞを䞀芧衚瀺するず、 ipythonずjupyter-consoleが、䞊蚘の4.2.0ず4.1.1ではなく、それぞれバヌゞョン5.0.0b4ず5.0.0b1になっおいるこずがわかりたす。 Jupyterをpipでむンストヌルする堎合。 パッケヌゞは次のずおりです。

$ pip list
ipykernel (4.3.1)
ipython (5.0.0b4)
ipywidgets (5.1.5)
jupyter (1.0.0)
jupyter-client (4.3.0)
jupyter-console (5.0.0b1)
nbconvert (4.2.0)
notebook (4.2.1)
pip (8.1.2)
qtconsole (4.2.1)
setuptools (23.1.0)
tornado (4.3)
traitlets (4.2.1)
wheel (0.29.0)
widgetsnbextension (1.2.3)

ここで䜕かが足りないかもしれたせんが、䜕がわからないのです。 setuptoolsを利甚したsetup.pyスクリプトの䟝存関係ずしおjupyterを䜿甚するず、ここで倱敗する理由はありたすか

䞀番、
オヌレリアン

これは、おそらくsetuptoolsがむンポヌトされたずきにpipがリストしおいるものずは異なるバヌゞョンを取埗しおいるこずを瀺唆しおいたす叀いsetuptoolsによっお匕き起こされる既知のバグ。 あなたは䜕から埗たすか

python -c 'import setuptools; print(setuptools, setuptools.__version__)'

そしおたた

python -m site

たた、setup.pyでsetuptoolsを䜿甚する堎合は、 python setup.py installはならず、 pip install .のみを実行する必芁があるこずもよく知られおいないかもしれたせん。

出力は次のずおりです。

$ python -c 'import setuptools; print(setuptools, setuptools.__version__)'
(<module 'setuptools' from '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/setuptools/__init__.pyc'>, '23.1.0')

ず

$ python -m site
sys.path = [
    '/Users/ajmazurie/Data/Professional-MSU/2015.07-MSU-me-Jupyter_in_Classroom/Projects/Callysto/callysto',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/jupyter-1.0.0-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/ipywidgets-5.1.5-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/ipykernel-4.3.1-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/nbconvert-4.2.0-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/jupyter_console-5.0.0b1-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/qtconsole-4.2.1-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/notebook-4.2.1-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/widgetsnbextension-1.2.3-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/traitlets-4.2.1-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/ipython-5.0.0b4-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/tornado-4.3-py2.7-macosx-10.10-x86_64.egg',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages/jupyter_client-4.3.0-py2.7.egg',
    '/Users/ajmazurie/<path to python>/lib/python27.zip',
    '/Users/ajmazurie/<path to python>/lib/python2.7',
    '/Users/ajmazurie/<path to python>/lib/python2.7/plat-darwin',
    '/Users/ajmazurie/<path to python>/lib/python2.7/plat-mac',
    '/Users/ajmazurie/<path to python>/lib/python2.7/plat-mac/lib-scriptpackages',
    '/Users/ajmazurie/<path to python>/lib/python2.7/lib-tk',
    '/Users/ajmazurie/<path to python>/lib/python2.7/lib-old',
    '/Users/ajmazurie/<path to python>/lib/python2.7/lib-dynload',
    '/Users/ajmazurie/.direnv/pyenv/versions/2.7.11/lib/python2.7',
    '/Users/ajmazurie/.direnv/pyenv/versions/2.7.11/lib/python2.7/plat-darwin',
    '/Users/ajmazurie/.direnv/pyenv/versions/2.7.11/lib/python2.7/lib-tk',
    '/Users/ajmazurie/.direnv/pyenv/versions/2.7.11/lib/python2.7/plat-mac',
    '/Users/ajmazurie/.direnv/pyenv/versions/2.7.11/lib/python2.7/plat-mac/lib-scriptpackages',
    '/Users/ajmazurie/<path to python>/lib/python2.7/site-packages',
]
USER_BASE: '/Users/ajmazurie/.local' (doesn't exist)
USER_SITE: '/Users/ajmazurie/.local/lib/python2.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: False

たた、setup.pyでsetuptoolsを䜿甚する堎合は、 python setup.py installはならず、 pip install .のみを実行する必芁があるこずもよく知られおいないかもしれたせん。

これは非垞に興味深いものであり、 setuptoolsに関する知識を曎新する必芁があるこずを瀺しおいる可胜性がありたす。 ずにかく、これは私の問題を修正したした 䞊蚘のsetup.pyスクリプトを含むフォルダヌにpip install .ず入力するこずで、Jupyterずその䟝存関係を正垞にむンストヌルできたした。 ありがずう

副次的な質問ずしお、なぜpython setup.py install機胜しなかったのですか なぜこれが問題になるのかに぀いおの参考資料をオンラむンで芋぀けるこずができたせんでした。

最高、オヌレリアン

python setup.py installはeasy_installず同じこずをしたす。 easy_installは倚くの䞍快なこずをしたす。それがpipが䜜成された理由です。 䞋䜍互換性の理由から、 python setup.py install垞にその望たしくない事を行いたすむンポヌトsetuptoolsのでeasy_install行い、これにより呌び出されるこずはありたせん。

NFSで共有されおいるvirtualvenvにipythonをむンストヌルした堎合にのみ、この゚ラヌが発生したす。 NFSのvenvにむンストヌルするず、この問題が発生する可胜性がある理由はありたすか

NFSが違いを生む理由はわかりたせんが、virtualenv内のpipのバヌゞョンを確認し、最新でない堎合は曎新しおみおください。

pip install --upgrade setuptools pip

@takluyver 「通垞の」ファむルシステムにipythonを正垞にむンストヌルするのず同じpipは、NFSに正しくむンストヌルされたせん。 はい、それはpipの最新バヌゞョンです。

奇劙な。 NFSがそれに圱響を䞎える理由はわかりたせん。

たた、最新のpip 8.1.2ず最新のsetuptools 25.1.6を䜿甚しおいるPython2.7でこの問題が発生しおいたす。 もっず䜕かが起こっおいる可胜性はありたせんか

事前にpipずずもにbackports.shutil_get_terminal_sizeをむンストヌルするこずは、この問題の効果的な回避策でした。

他の堎所で説明したように、PRhttps://github.com/paulgb/runipy/pull/125を組み合わせお、 backports.shutil_get_terminal_size゚ラヌずentrypoints゚ラヌを衚瀺したす。 最初のコミットは最初の゚ラヌを瀺し、2番目のコミットは2番目の゚ラヌを瀺したす。 どちらの堎合も、マトリックスの最初の3぀のCIビルドが重芁です。 これら3぀すべおがsetuptoolsを䜿甚しおすべおをむンストヌルしたす。

setuptoolsの問題のようです。 pipを䜿甚しおむンストヌルするず垞に実行する必芁がありたす、修正されたす。

ただし、setuptoolsが倱敗しおいるこずは100わかりたせん。

新しい2.7.3virtualenvにIPythonJupyterではないをむンストヌルするのず同じ皮類の問題が発生したした。 IPythonはむンストヌルされおいるように芋えたしたが、 pathlib2 、次にbackports.shutil-get-terminal-sizeがありたせんpip installを実行するず䟝存関係が修正され、IPythonが機胜するようになりたした。

$ pip freeze
nose==1.3.7
numpy==1.8.0
pyreadline==2.1
wsgiref==0.1.2

$ pip install ipython
[...]
Successfully installed ipython setuptools decorator pickleshare simplegeneric traitlets prompt-toolkit pygments pexpect ipython-genutils six wcwidth ptyprocess
Cleaning up...

$ pip freeze
Pygments==2.1.3
decorator==4.0.10
ipython==5.0.0
ipython-genutils==0.1.0
nose==1.3.7
numpy==1.8.0
pexpect==4.2.0
pickleshare==0.7.3
prompt-toolkit==1.0.5
ptyprocess==0.5.1
pyreadline==2.1
simplegeneric==0.8.1
six==1.10.0
traitlets==4.2.2
wcwidth==0.1.7
wsgiref==0.1.2

$ ipython
[...]
pkg_resources.DistributionNotFound: The 'pathlib2' distribution was not found and is required by ipython

$ pip install pathlib2

$ ipython
[...]
pkg_resources.DistributionNotFound: The 'backports.shutil_get_terminal_size' distribution was not found and is required by ipython

$ pip install backports.shutil_get_terminal_size

$ pip freeze
Pygments==2.1.3
backports.shutil-get-terminal-size==1.0.0
decorator==4.0.10
ipython==5.0.0
ipython-genutils==0.1.0
nose==1.3.7
numpy==1.8.0
pathlib2==2.1.0
pexpect==4.2.0
pickleshare==0.7.3
prompt-toolkit==1.0.5
ptyprocess==0.5.1
pyreadline==2.1
simplegeneric==0.8.1
six==1.10.0
traitlets==4.2.2
wcwidth==0.1.7
wsgiref==0.1.2

$ ipython
Python 2.7.3 (default, Aug 11 2016, 11:06:04) 
Type "copyright", "credits" or "license" for more information.

IPython 5.0.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]: 

pip --versionできたすか 叀いバヌゞョンのpipを䜿甚しおいるず思いたす。

はい。それで合っおいたす。 私はピップ1.4.1にいたした。

virtualenvをpip8.1.2にアップグレヌドし、IPython 5.0.0を問題なくむンストヌルした埌、挔習を繰り返したした。

$ pip freeze
backports.shutil-get-terminal-size==1.0.0
decorator==4.0.10
ipython==5.0.0
ipython-genutils==0.1.0
numpy==1.8.0
pathlib2==2.1.0
pexpect==4.2.0
pickleshare==0.7.3
prompt-toolkit==1.0.5
ptyprocess==0.5.1
Pygments==2.1.3
simplegeneric==0.8.1
six==1.10.0
traitlets==4.2.2
wcwidth==0.1.7

私はOSXでもこの問題を抱えおいたす

cternus<strong i="6">@astarael</strong>:~⟫ ipython
Traceback (most recent call last):
  File "/usr/local/bin/ipython", line 7, in <module>
    from IPython import start_ipython
  File "/usr/local/lib/python2.7/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/usr/local/lib/python2.7/site-packages/IPython/core/application.py", line 25, in <module>
    from IPython.core import release, crashhandler
  File "/usr/local/lib/python2.7/site-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/usr/local/lib/python2.7/site-packages/IPython/core/ultratb.py", line 128, in <module>
    from IPython.utils.terminal import get_terminal_size
  File "/usr/local/lib/python2.7/site-packages/IPython/utils/terminal.py", line 22, in <module>
    from backports.shutil_get_terminal_size import get_terminal_size as _get_terminal_size
ImportError: No module named shutil_get_terminal_size
cternus<strong i="7">@astarael</strong>:~⟫ pip freeze | grep shutil
backports.shutil-get-terminal-size==1.0.0
cternus<strong i="8">@astarael</strong>:~⟫ pip freeze | grep ipython
ipython==5.0.0
ipython-genutils==0.1.0
cternus<strong i="9">@astarael</strong>:~⟫ python -m site
sys.path = [
    '/Users/cternus',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
    '/usr/local/lib/python2.7/site-packages',
    '/Library/Python/2.7/site-packages',
    '/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
]
USER_BASE: '/Users/cternus/Library/Python/2.7' (doesn't exist)
USER_SITE: '/Users/cternus/Library/Python/2.7/lib/python/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

sudo pip install --upgrade --force-reinstall ipython およびpipずsetuptoolsの再むンストヌルを実行しようずしたしたが、うたくいきたせんでした。

調査した結果、 backports.shutil_get_terminal_sizeモゞュヌル自䜓に問題があるず思いたす。

cternus<strong i="7">@astarael</strong>:/usr/local/lib/python2.7/site-packages⟫ python
Python 2.7.12 (default, Jun 29 2016, 14:05:02)
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import backports
>>> dir(backports)
['__doc__', '__name__', '__path__']
>>> import backports.shutil_get_terminal_size
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named shutil_get_terminal_size
>>>
cternus<strong i="8">@astarael</strong>:/usr/local/lib/python2.7/site-packages⟫ ls backports
__init__.py              functools_lru_cache.py   shutil_get_terminal_size
cternus<strong i="9">@astarael</strong>:/usr/local/lib/python2.7/site-packages⟫ ls backports/shutil_get_terminal_size
__init__.py           __init__.pyc          get_terminal_size.py  get_terminal_size.pyc
cternus<strong i="10">@astarael</strong>:/usr/local/lib/python2.7/site-packages⟫

興味深いこずに、 backportsモゞュヌルは、それ自䜓の2぀のわずかに異なるバヌゞョンをむンストヌルしおいるようです。

root<strong i="15">@astarael</strong>:/usr/local/lib/python2.7/site-packages/backports⟫ pip show --no-cache -vf backports.shutil-get-terminal-size
---
Metadata-Version: 2.0
Name: backports.shutil-get-terminal-size
Version: 1.0.0
Summary: A backport of the get_terminal_size function from Python 3.3's shutil.
Home-page: https://github.com/chrippa/backports.shutil_get_terminal_size
Author: Christopher Rosell
Author-email: [email protected]
Installer: pip
License: MIT
Location: /usr/local/lib/python2.7/site-packages
Requires:
Classifiers:
  Development Status :: 5 - Production/Stable
  License :: OSI Approved :: MIT License
  Programming Language :: Python :: 2.6
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3.2
Files:
  backports.shutil_get_terminal_size-1.0.0.dist-info/DESCRIPTION.rst
  backports.shutil_get_terminal_size-1.0.0.dist-info/INSTALLER
  backports.shutil_get_terminal_size-1.0.0.dist-info/METADATA
  backports.shutil_get_terminal_size-1.0.0.dist-info/RECORD
  backports.shutil_get_terminal_size-1.0.0.dist-info/WHEEL
  backports.shutil_get_terminal_size-1.0.0.dist-info/metadata.json
  backports.shutil_get_terminal_size-1.0.0.dist-info/top_level.txt
  backports/__init__.py
  backports/__init__.pyc
  backports/shutil_get_terminal_size/__init__.py
  backports/shutil_get_terminal_size/__init__.pyc
  backports/shutil_get_terminal_size/get_terminal_size.py
  backports/shutil_get_terminal_size/get_terminal_size.pyc
  shutil_backports/__init__.py
  shutil_backports/__init__.pyc
  shutil_backports/get_terminal_size.py
  shutil_backports/get_terminal_size.pyc

そしお、shutil_backports.get_terminal_sizeを䜿甚するようにIPython / utils /terminal.pyにパッチを適甚するず機胜したす。 図に行きたす。

こんにちは、

virtualenvでも同じ゚ラヌが発生しおいたした。 私はpipを䜿甚しおjupyterをむンストヌルしおいたした。

私は埗おいた
ImportErrorshutil_get_terminal_sizeずいう名前のモゞュヌルがありたせん

_ "pipfreeze"はbackports.shutil-get-terminal-size == 1.0.0_を瀺したした

だから私はアップグレヌドしおみたした。 それは瀺した

_pip install --upgrade backports.shutil-get-terminal-size_
芁件はすでに最新です/Library/Python/2.7/site-packagesのbackports.shutil-get-terminal-size

したがっお、それはどういうわけか私のグロヌバルラむブラリにアクセスしおいお、私のvenvにあるラむブラリにはアクセスしおいたせんでした。

次に、グロヌバルpythonからbackports.shutil-get-terminal-sizeをアンむンストヌルし、venevにむンストヌルしたした。 今では正垞に動䜜しおいたす。

このむンストヌルでこれを100再珟できたす

pip install --user --upgrade ipython==4.2

このむンストヌルでこれを0の確率で再珟できたす

pip install --user --upgrade ipython==4.1.1

なおず--userコマンドラむンPythonのツヌルが蚭眮される~/Library/Python/2.7/bin/ipythonの代わりに/usr/local/bin

@AndrewHoosず私にずっおは、䞡方のコマンドが䟝存関係を正しく取埗したす。 pip --versionから䜕が埗られたすか 少なくずも8である必芁がありたす。そうでない堎合は、setuptoolsずpipが最新であるこずを確認しおください。

pip install --upgrade setuptools pip

condaむンストヌルされたノヌトブック4.2.2ずipython5.1.0でこの問題が発生したした。 䞊で述べたように、私はすでにshutil_get_terminal_sizeをむンストヌルしたした

pip install backports.shutil_get_terminal_size
Requirement already satisfied (use --upgrade to upgrade): backports.shutil_get_terminal_size in /.../anaconda/lib/python2.7/site-packages

ただし、通垞のPythonシェルでは、 import backports.shutil_get_terminal_sizeコマンドは倱敗したす。

わかりたした、私は倧雑把ですが単玔な解決策を芋぀けたしたアンむンストヌルしお再床むンストヌルしたす。 これでipythonが機胜したす。

$ pip uninstall backports.shutil_get_terminal_size
Uninstalling backports.shutil-get-terminal-size-1.0.0:
  /home/pierre/Programmes/anaconda/lib/python2.7/site-packages/backports
  /home/pierre/Programmes/anaconda/lib/python2.7/site-packages/backports.shutil_get_terminal_size-1.0.0-py2.7.egg-info
Proceed (y/n)? y
  Successfully uninstalled backports.shutil-get-terminal-size-1.0.0
$ pip install backports.shutil_get_terminal_size
Collecting backports.shutil_get_terminal_size
  Downloading backports.shutil_get_terminal_size-1.0.0-py2.py3-none-any.whl
Installing collected packages: backports.shutil-get-terminal-size
Successfully installed backports.shutil-get-terminal-size-1.0.0

たた、この問題に遭遇したした
悲しいこずに、それ以䞊のこずは䜕も圹に立ちたせんでしたが、問題は䞊蚘で報告されたずおりです。

ImportErrorshutil_get_terminal_sizeずいう名前のモゞュヌルがありたせん

IPythonずバックポヌトをアンむンストヌルしおむンストヌルするのは楜しいこずではありたせんでした。

問題は、Jupyterずその友達がグロヌバルにむンストヌルされおいお、shutil_get_terminal_sizeがグロヌバルにむンストヌルされおいるこずでした。 ぀たり、/ Library / Python / 2.7 / site-packages / shutil_backports /にありたす

ただし、backports.functools_lru_cacheもロヌカルにむンストヌルしおいたため、実際にはshutil_backportsのむンポヌトがブロックされおいたした。

これが問題であるかどうかをテストするには、次のようにしたす。ls〜 / Library / Python / 2.7 / lib / python / site-packagesOSXで、フォルダヌのバックポヌトが衚瀺される堎合は、おそらく問題がありたす。ナヌザヌラむブラリからラむブラリをアンむンストヌルし、それをシステムラむブラリに远加したした。どちらの方法でも、バックポヌトを混圚させないでください。完党に機胜するには、グロヌバルたたはロヌカルである必芁がありたす。

Debian SidUnstableの同じ問題が完党に曎新されたした。 ピップを曎新したした。 新しいものからアンむンストヌルしお再むンストヌルしようずしたした。 など。䜕も機胜したせんでした。

# uname -a
Linux bunsen 4.7.0-1-amd64 #1 SMP Debian 4.7.2-1 (2016-08-28) x86_64 GNU/Linux
# pip2 --version
pip 8.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)
# pip show ipython
---
Metadata-Version: 2.0
Name: ipython
Version: 5.1.0
Summary: IPython: Productive Interactive Computing
Home-page: http://ipython.org
Author: The IPython Development Team
Author-email: [email protected]
Installer: pip
License: BSD
Location: /usr/local/lib/python2.7/dist-packages
Requires: pickleshare, simplegeneric, traitlets, backports.shutil-get-terminal-size, decorator, pygments, prompt-toolkit, pexpect, pathlib2, setuptools
Classifiers:
  Framework :: IPython
  Intended Audience :: Developers
  Intended Audience :: Science/Research
  License :: OSI Approved :: BSD License
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Topic :: System :: Shells
Entry-points:
  [console_scripts]
  iptest = IPython.testing.iptestcontroller:main
  iptest2 = IPython.testing.iptestcontroller:main
  ipython = IPython:start_ipython
  ipython2 = IPython:start_ipython
  [pygments.lexers]
  ipython = IPython.lib.lexers:IPythonLexer
  ipython3 = IPython.lib.lexers:IPython3Lexer
  ipythonconsole = IPython.lib.lexers:IPythonConsoleLexer

backports.shutil_get_terminal_sizeをアンむンストヌルしおむンストヌルしたす。

osxで+1。 同じ問題、-グロヌバルをアンむンストヌルし、virtualenvでむンストヌルするず、ロヌカルを指したす。

@Hiczeke詊しおみたしたが、

倚くのこずを詊した埌、解決した最埌のコマンドはsetuptools曎新するこず
私がお勧めしたす

  • Debian ipythonやpython-backports-shutil-get-terminal-sizeなどのシステムパッケヌゞをアンむンストヌルしたす
  • pipでアンむンストヌル ipython 、 jupyter 、 backports.shutil_get_terminal_size
  • pipずsetuptools: pipinstallをアップグレヌドしたす--upgradesetuptools pip`
  • ipythonおよびその他をpipで再むンストヌルしたす pip install ipython jupyter

以䞋は私のために問題を修正したした
pipアンむンストヌルbackports.shutil_get_terminal_size
pip install backports.shutil_get_terminal_size

@ Paul-Richter @Hiczeke
どうもありがずう
「backports.shutil_get_terminal_size」の再むンストヌルは問題なく機胜したした。

pip install --upgrade --force-reinstall ipython

これで私のMacの問題が修正されたした

私はかなり混乱しおいたす

sudo pip uninstall backports.shutil_get_window_size
>>Cannot uninstall requirement backports.shutil-get-window-size, not installed

sudo pip install backports.shutil_get_window_size
>>Could not find a version that satisfies the requirement backports.shutil_get_window_size (from versions: )
>>No matching distribution found for backports.shutil_get_window_size

あなたのために修正されたした、むアン。

sudoのピップアンむンストヌルbackports.shutil_get_タヌミナル_size

sudo pip install backports.shutil_get_ terminal _size

12:52むアンヒンクスの氎、2017幎1月25日には[email protected]
曞きたした

私はかなり混乱しおいたす

sudopipアンむンストヌルbackports.shutil_get_window_size

芁件backports.shutil-get-window-sizeをアンむンストヌルできたせん。むンストヌルされおいたせん

sudo pip install backports.shutil_get_window_size

芁件backports.shutil_get_window_sizeを満たすバヌゞョンが芋぀かりたせんでしたバヌゞョンから:)
backports.shutil_get_window_sizeに䞀臎するディストリビュヌションが芋぀かりたせん

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/ipython/ipython/issues/9656#issuecomment-275197674 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/ATln0kDS_u6PaTk6Qunjc_oEtKCv_-cRks5rV5n7gaJpZM4I9MnS
。

@ Paul-Richterああ、ありがずう:)

アンむンストヌル/再むンストヌルはどれもうたくいきたせんでした。 最終的に私のために働いたのは、䞊蚘のコメントで@ternusによっお提案され/usr/local/lib/python2.7/dist-packages/IPython/utils/terminal.pyを開いお行を倉曎したす

from backports.shutil_get_terminal_size import get_terminal_size as _get_terminal_size

に

from shutil_backports import get_terminal_size as _get_terminal_size

@ihincks あなたのコメントはosxに関する私の問題を解決したした😃

私は今日OSX10.12.3でこの゚ラヌに遭遇したした。 以䞋が解決されたした。

pip install --upgrade pip setuptools
pip install --upgrade --force-reinstall ipython

これがipython゚ラヌだずは思わない。 終了するこずをお勧めしたす。

IPython゚ラヌではないず確信しおいたすが、実際に䜕が問題になっおいるのかを解明しお、再むンストヌル+垌望よりも優れた゜リュヌションを提䟛できるようにしたいず思いたす...

@ pierre-haessigあなたは私の日を救いたす。どうもありがずう。

@ihincksすべおの投皿を詊したしたが、

ihincksによる修正はWindows10でも機胜したす

私はそれが誰かを助けるこずができるこずを願っおいたす。
私の堎合、問題の原因が間違ったipythonバヌゞョンであるこずがわかりたした。

ls -lah /usr/local/bin/ipython*
-rwxr-xr-x  1 z  staff   247B Mar  5 15:16 /usr/local/bin/ipython
-rwxr-xr-x  1 z  staff   247B Mar  5 15:16 /usr/local/bin/ipython3

python3バヌゞョンをたったく持っおいないので、どうしおそれが起こるのかわかりたせん。
Pythonをアンむンストヌルし、関連するラむブラリを削陀するず、問題は解決したした

brew uninstall python
rm -rf /usr/local/lib/python2.7

Pythonを再むンストヌルし、pipのバヌゞョンず堎所が正しいこずを確認したした。
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
pip2 install ipython

@ihincks

これが私にずっお唯䞀の正しい答えです。

sudopipアンむンストヌルbackports.shutil_get_terminal_size
sudo pip install backports.shutil_get_terminal_size

Pipはsudoで䜿甚されない可胜性がありたす。
sudoをpipで䜿甚するず、システムがこのように壊れおしたいたす。
問題が説明したす。

sudoを䜿甚する必芁がある堎合は、システムに問題がありたす。

NS

>>

@ihincks FreeBSDでは、あなたの゜リュヌションだけが機胜したした トンありがずう

参考たでに、同じ問題が発生したしたが、pipで--ignore-installedオプションを䜿甚するこずによっおのみ、 shutil_get_terminal_size問題を回避できたした。 これがないず、パッケヌゞは正しく再むンストヌルされたせん。

pip install --ignore-installed backports.shutil_get_terminal_size

@AllanDaemonの応答は、私にずっお問題を解決したした

同様の問題に盎面し、backports.shutil_get_terminal_sizeをアンむンストヌルしお再むンストヌルするこずで解決したした

pipアンむンストヌルbackports.shutil_get_terminal_size
pip install backports.shutil_get_terminal_size

私も同じ問題を抱えおいたした。
䞊蚘の倚くの解決策を詊した埌、問題は$ PATH蚭定が原因であるこずがようやくわかりたした。
以前はpip install --userオプションを䜿甚しおいたので、 /home/jin/.local/lib/python2.7が$ PATHにあり、別のバヌゞョンのbackports存圚しおいた可胜性がありたす。
.local/lib/python2.7フォルダヌを削陀するこずで、この問題を解決したした。

$ PATHに問題があるかどうかをテストするには、簡単に詊しおみおください。

import sys
print sys.path

この問題は、「システム」ず「ナヌザヌ」の䞡方の堎所に「バックポヌト」があるこずが原因で発生したす。
macOSで、shutil_get_terminal_sizeをシステムにむンストヌルしたしたが、ナヌザヌホヌムに別のパッケヌゞをむンストヌルしたした。 このナヌザヌフォルダが優先され、システムで怜玢するこずはありたせん。
--userを䜿甚しおすべおのPythonパッケヌゞをむンストヌルするのが賢明です。
スタックした堎合は、-userを䜿甚しお再むンストヌルを匷制したす。
pip install --ignore-installed backports.shutil_get_terminal_size --user
これは毎回私を悩たせるので、おそらくいく぀かの蚺断に远加する必芁がありたす

backportsは、「名前空間パッケヌゞ」であるず想定されおおり、そのようなさたざたな堎所にサブパッケヌゞをむンストヌルできたす。 しかし、それは確実に機胜しおいないようで、その理由がわかりたせん。 ロヌカルでデバッグするためにそれを再珟するこずはできたせん、そしお他の人々を通しおそれをデバッグする私の詊みはちょうど困惑しおいたす。

@takluyver https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843898を芋たこずがあり

残念ながら、それは倚かれ少なかれ私が芋぀けたもののように思えたす-䜕かがbackports名前空間パッケヌゞを台無しにしおいたすが、私たちは䜕をどのように理解するこずができたせん。 Debianは、圓然のこずながら、pipでむンストヌルされたパッケヌゞが問題を解決しおも問題はないず述べたした。

私はここにコメントしたしたhttps://github.com/chrippa/backports.shutil_get_terminal_size/issues/9#issuecomment-279021331ピップを介したホむヌルず非ホむヌル非バむナリむンストヌルの違いを芋぀けるこずに぀いお䞊蚘で参照したした、それは関連するものはありたすか

IPythonの次のバヌゞョンのフォヌルバックずしおのベンダヌに぀いおはどうですか

これはCPythonのshutilにバックポヌトできるものですか

これはCPythonのshutilにバックポヌトできるものですか

いいえ、IPython 6.0 / masterでbackportパッケヌゞを䜿甚しおいたせん。これは、サポヌトするすべおのCPython安定版にすでに含たれおおり、2.7でbackportパッケヌゞを䜿甚しおいるためにのみ問題が発生したす。これは暙準のCPython2.7にはないためです。

ずった。 @Carreauに感謝したす。 䞀時的な問題になるだけでよかったです。

グロヌバルむンストヌルを削陀し、virtualenvでアンむンストヌルし、virtualenvで再むンストヌルするず、問題が解決したした。

以䞋のコマンドを入力するだけで必芁なもの

conda config --add channels conda-forge
conda install backports.shutil_get_terminal_size

私は以前同じ問題を抱えおいたした、そしおこれはそれを解決したす。

やあ
Ubuntu17.10ずipython2で同じ問題が発生したす。
python3で問題ありたせん

修正 sudo -H pip install --ignore-installed backports.shutil_get_terminal_size

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 17.10
Release:    17.10
Codename:   artful

$ python --version
Python 2.7.14

$ python3 --version
Python 3.6.3

$ pip show ipython
Name: ipython
Version: 5.1.0
Summary: IPython: Productive Interactive Computing
Home-page: http://ipython.org
Author: The IPython Development Team
Author-email: [email protected]
License: BSD
Location: /usr/lib/python2.7/dist-packages
Requires: backports.shutil-get-terminal-size, pathlib2, pexpect

$ pip3 show ipython
Name: ipython
Version: 5.1.0
Summary: IPython: Productive Interactive Computing
Home-page: http://ipython.org
Author: The IPython Development Team
Author-email: [email protected]
License: BSD
Location: /usr/lib/python3/dist-packages
Requires: pexpect

$ ipython
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/usr/lib/python2.7/dist-packages/IPython/core/application.py", line 25, in <module>
    from IPython.core import release, crashhandler
  File "/usr/lib/python2.7/dist-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/usr/lib/python2.7/dist-packages/IPython/core/ultratb.py", line 128, in <module>
    from IPython.utils.terminal import get_terminal_size
  File "/usr/lib/python2.7/dist-packages/IPython/utils/terminal.py", line 22, in <module>
    from backports.shutil_get_terminal_size import get_terminal_size as _get_terminal_size
ImportError: No module named shutil_get_terminal_size

$ apt-cache show python-ipython
Package: python-ipython
Architecture: all
Version: 5.1.0-3
Priority: optional
Section: universe/python
Source: ipython
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Python Modules Team <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1864
Depends: python-decorator, python-pexpect, python-pickleshare, python-pkg-resources, python-prompt-toolkit, python-pygments, python-simplegeneric, python-traitlets, python:any (<< 2.8), python:any (>= 2.7.5-5~), python-backports-shutil-get-terminal-size, python-pathlib2
Breaks: ipython (<< 4)
Replaces: ipython (<< 4)
Filename: pool/universe/i/ipython/python-ipython_5.1.0-3_all.deb
Size: 375048
MD5sum: 7ae68256eb7c6183634ea3680ad4449d
SHA1: 7e2916b5e661793dcb55e86404de5cd1f0d19d8b
SHA256: 0664f1d3c5543cc3ba4db4fcd8bf4526de714e3f35687b49052fad7831cbdee3
Homepage: https://github.com/ipython/ipython
Description-en: Enhanced interactive Python shell (Python 2 version)
 IPython can be used as a replacement for the standard Python shell,
 or it can be used as a complete working environment for scientific
 computing (like Matlab or Mathematica) when paired with the standard
 Python scientific and numerical tools. It supports dynamic object
 introspections, numbered input/output prompts, a macro system,
 session logging, session restoring, complete system shell access,
 verbose and colored traceback reports, auto-parentheses, auto-quoting,
 and is embeddable in other Python programs.
 .
 This package contains the backend terminal shell for Python 2: for
 the actual frontend install ipython.
Description-md5: 713480d81c0c64f1b3a9c4c9350ef96c

$ apt-cache show python3-ipython
Package: python3-ipython
Architecture: all
Version: 5.1.0-3
Priority: optional
Section: universe/python
Source: ipython
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Python Modules Team <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1864
Depends: python3-decorator, python3-pexpect, python3-pickleshare, python3-pkg-resources, python3-prompt-toolkit, python3-pygments, python3-simplegeneric, python3-traitlets, python3:any (>= 3.3.2-2~), python-pexpect
Breaks: ipython3 (<< 4)
Replaces: ipython3 (<< 4)
Filename: pool/universe/i/ipython/python3-ipython_5.1.0-3_all.deb
Size: 375114
MD5sum: c0585bf56c9fbcbb73aa45d25b8fbe14
SHA1: c7118d1050f50723d614a3060ad6d8d31a96e73c
SHA256: 293217ee356c2c2623efce3fc391b1876a38585b0ae7462b2a8a0d3f3424ec86
Homepage: https://github.com/ipython/ipython
Description-en: Enhanced interactive Python shell (Python 3 version)
 IPython can be used as a replacement for the standard Python shell,
 or it can be used as a complete working environment for scientific
 computing (like Matlab or Mathematica) when paired with the standard
 Python scientific and numerical tools. It supports dynamic object
 introspections, numbered input/output prompts, a macro system,
 session logging, session restoring, complete system shell access,
 verbose and colored traceback reports, auto-parentheses, auto-quoting,
 and is embeddable in other Python programs.
 .
 This package contains the backend terminal shell for Python 3: for
 the actual frontend install ipython.
Description-md5: 8182f91eff6e0e148e574a20d31e0f51

@ nicola-lunghi sudo pipを䜿甚するように人々にアドバむスしないでください。これは、長期的にはシステムを奇劙な方法で砎壊するだけです。 Pipは、いく぀かのファむルをめぐっおシステムパッケヌゞマネヌゞャヌず戊いたす。

これは、倜間に定期的に目芚めるため、䞀酞化炭玠アラヌムからバッテリヌを取り倖すのず同じです。 ヒヌタヌに問題がありたす。 適切な修正が必芁です。

ありがずう@Carreau
自宅で火を消した埌、答えを蚂正したす。

PSは「ヘザヌ」->デブの䟝存関係を修正しおください

最も簡単な修正は、おそらくpip install --user ipythonお新しいバヌゞョンのIPythonをむンストヌルするこずです --userフラグはsudoを必芁ずしないこずを意味したす。 IPythonでこの問題を回避したしたが、Debianパッケヌゞを制埡できず、aptを介しおむンストヌルするナヌザヌは叀いバヌゞョンのIPythonを入手したす。

誰かがCygwinずpython2で同じ問題に遭遇した堎合の解決策は、Cygwin setup.exeたたはapt-cyg utlsの1぀を実行しおpython2-backports.shutil_get_terminal_sizeをむンストヌルするこずです。 これはデフォルトでは䟝存関係ずしおトリガヌされないため、手動でむンストヌルする必芁がありたす。

ipython3はそのたたで問題ありたせん。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡