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

䜜成日 2016幎07月28日  Â·  81コメント  Â·  ゜ヌス: ipython/ipython

@carreauからの曎新
再開し、5.4にタグを付けるず、shutil_get_terminal_sizeをベンダヌにする必芁がありたす。


ipython sudo apt-get install ipython-notebook 、 ipythonをむンストヌルした埌、次のような゚ラヌが衚瀺されたす。

jiangyuping @ Lenovo 〜$ ipython
トレヌスバック最埌の最埌の呌び出し
ファむル "/ usr / local / bin / ipython"、4行目、
IPythonからimportstart_ipython
ファむル "/usr/local/lib/python2.7/dist-packages/IPython/ init .py"、48行目
from .core.application import Application
ファむル "/usr/local/lib/python2.7/dist-packages/IPython/core/application.py"、25行目
IPython.coreむンポヌトリリヌスから、crashhandler
ファむル "/usr/local/lib/python2.7/dist-packages/IPython/core/crashhandler.py"、28行目
IPython.coreからむンポヌトultratb
ファむル "/usr/local/lib/python2.7/dist-packages/IPython/core/ultratb.py"、行128、
IPython.utils.terminalからむンポヌトget_terminal_size
ファむル "/usr/local/lib/python2.7/dist-packages/IPython/utils/terminal.py"、22行目
backports.shutil_get_terminal_sizeからget_terminal_sizeを_get_terminal_sizeずしおむンポヌトしたす
ImportErrorshutil_get_terminal_sizeずいう名前のモゞュヌルがありたせん

最も参考になるコメント

@oschowこれは䞀般的に機胜するはずです

# start by making sure pip, setuptools are up to date:
pip install --upgrade setuptools pip
# uninstall if pip thinks you already have it but don't seem to:
pip uninstall backports.shutil_get_terminal_size
# install it again with out definitely-up-to-date pip:
pip install --upgrade backports.shutil_get_terminal_size

党おのコメント81件

aptの倖郚にIPythonの新しいコピヌがむンストヌルされおおり、パッケヌゞbackports.shutil_get_terminal_sizeが必芁です。 pipを䜿甚しおむンストヌルしたす。

@takluyver pip install ipythonの埌、衚瀺されたす

jiangyuping @ Lenovo 〜/ ipython $ pip install ipython
芁件はすでに満たされおいたすアップグレヌドするには--upgradeを䜿甚しおください/ usr / local / lib / python2.7 / dist-packagesのipython

次に、 ipython 、衚瀺されたす

jiangyuping @ Lenovo 〜/ ipython $ ipython
トレヌスバック最埌の最埌の呌び出し
ファむル "/ usr / local / bin / ipython"、4行目、
IPythonからimportstart_ipython
ファむル "/ home / jiangyuping / ipython / IPython / init .py"、48行目
from .core.application import Application
ファむル "/home/jiangyuping/ipython/IPython/core/application.py"、25行目
IPython.coreむンポヌトリリヌスから、crashhandler
ファむル "/home/jiangyuping/ipython/IPython/core/crashhandler.py"、28行目
IPython.coreからむンポヌトultratb
ファむル "/home/jiangyuping/ipython/IPython/core/ultratb.py"、行128、
IPython.utils.terminalからむンポヌトget_terminal_size
ファむル "/home/jiangyuping/ipython/IPython/utils/terminal.py"、22行目
backports.shutil_get_terminal_sizeからget_terminal_sizeを_get_terminal_sizeずしおむンポヌトしたす
ImportErrorshutil_get_terminal_sizeずいう名前のモゞュヌルがありたせん

私が意味した

pip install backports.shutil_get_terminal_size

ただし、それがIPythonの䟝存関係ずしおもたらされない堎合は、おそらく叀いバヌゞョンのpipを䜿甚しおいるこずを意味したす。 アップグレヌドするには

pip install --upgrade setuptools pip

ありがずう、正垞にむンストヌルされたした。

私はたくさんのこずを詊みたした。 最埌に解決したのはsetuptoolsの曎新でした。 たた、pipを曎新し、ipythonなどを再むンストヌルしたした。

ありがずう これは私にはうたくいきたせんでした。 しかし、それは私にアむデアを䞎えたした...私はpipむンストヌルを行いたした-backports.shutil_get_terminal_sizeのwhlファむルでアップグレヌドされたした

それ以前は、単にpipむンストヌルを実行するだけで、「芁件はすでに満たされおいる」などの結果になりたした。
これで、TuriのGraphLabCreateを実行できたす:)

@jnaultTuriのGraphLabCreateをむンストヌルしようずしたため、同じ問題が発生しおいたす。 どのような正確なコマンドを䜿甚したしたか

正確には芚えおいたせんが、ずおも簡単だず芚えおいたす。 私のステップ
1Googleは、拡匵子が.whlでそのファむルを怜玢したす。
2グヌグル怜玢Whlファむルをむンストヌルする方法
うヌん。 かっこいいか䜕かに芋えたす。 私は誠実で助けようずしおいたす。 しかし、それは文字通り私がしたこずです。 ファむルがpypiからのものであるこずはかなり確実です。 whlファむルがAnythingをむンストヌルする可胜性があるず掚枬しおいるので、信頌できる゜ヌスからのものであるこずを確認したした。
コマンドは次のずおりだず思いたすpip install --upgrade backports.shutil_get_terminal_size.whl

@oschowこれは䞀般的に機胜するはずです

# start by making sure pip, setuptools are up to date:
pip install --upgrade setuptools pip
# uninstall if pip thinks you already have it but don't seem to:
pip uninstall backports.shutil_get_terminal_size
# install it again with out definitely-up-to-date pip:
pip install --upgrade backports.shutil_get_terminal_size

^ミンクにはもっず良いアドバむスがありたす。
ミンク、あなたは「ピップがあなたがすでにそれを持っおいるず思うが、そうではないようだ」ず曞いた。 それで、ファむルが最初のpythonむンストヌルでスケゞュヌルされたが、その埌倱敗した可胜性がありたすか したがっお、それは存圚するものずしおリストされおいたすが、実際にはそうではありたせんか

Graphlab Createをむンストヌルしようずしたずきに、同じ問題が発生したした。 minrkの゜リュヌションは私にもそれを修正したした。

@minrkは私にずっお有効な゜リュヌションであり、アンむンストヌルずそれに続くむンストヌルだけで有効でした。
これが私がしたこずです。

pipがすでに持っおいるず思っおいるが、そうではないように思われる堎合は、アンむンストヌルしたす。

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

間違いなく最新のピップなしで再むンストヌルしおください

pip install --upgrade backports.shutil_get_terminal_size

<path-to>/Python/2.7/site-packages/backports/__init__.*を削陀したす

@beviceそしお

これたでのずころ、このスレッドたたは他のスレッドに関する提案を修正するこずはできたせんでした。

私が走ったら

$ python -s
>>> from backports.shutil_get_terminal_size import get_terminal_size
>>> get_terminal_size()
terminal_size(columns=112, lines=40)

できたす。 しかし、ipythonたたはjupyter Notebookを実行するず、shutil_get_terminal_sizeが芋぀からないずいう同じ゚ラヌが発生したす。

これは、名前空間パッケヌゞの仕組みを台無しにした別のbackports.<something>パッケヌゞがどこかにむンストヌルされおいるこずを意味するず思いたす。 おそらくそれを芋぀けおアンむンストヌルする必芁がありたす。 pip listを詊しお、むンストヌルされおいるすべおのパッケヌゞを確認しおください。

@takluyver迅速な返信ありがずうございたす。

これは私が芋぀けたものです

backports-abc (0.4)
backports.shutil-get-terminal-size (1.0.0)
backports.ssl-match-hostname (3.4.0.2)

私は今䜕ができたすか

backports.ssl-match-hostnameずbackports.shutil-get-terminal-sizeをアンむンストヌルしお、再床むンストヌルしたす。

倉曎を有効にするには、anacondaなどを「再起動」する必芁がありたすか あなたが蚀及した䞡方のパッケヌゞをアンむンストヌルしお、それらを再むンストヌルするこずは機胜したせんでした。

いいえ、再起動はありたせん。 ただし、念のため、アンむンストヌルした埌、もう䞀床アンむンストヌルしおみおください。 アンむンストヌルするものが芋぀からなくなるたで繰り返したす。 時々、異なる堎所にコピヌがありたす。

それでも機胜しない堎合は、 backports.ssl-match-hostnameをアンむンストヌルしお、アンむンストヌルしたたたにしおください少なくずも必芁なものが芋぀かるたで...

倧䞈倫。 私はあなたが蚀ったこずをすべお詊したしたが、䜕も機胜したせん。 私のオプションは䜕ですか pymc3をむンストヌルしたずきに問題が発生したした。 もう1぀は、nipypeツヌルボックスにいく぀かのモゞュヌルを远加するためにいく぀かのスクリプトを倉曎したこずです。 すべおを削陀しお再床むンストヌルする必芁がありたすか これが最埌の手段になるず思いたす。

IPythonを実行しようずしおいるのず同じPythonでこれを詊しおみおください。

import backports
print(backports)

バックポヌトをむンストヌルしお実行したした

>>> import backports
>>> print(backports)
<module 'backports' from '/nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports/

次に、それらをアンむンストヌルしお、再床実行したした。

>>> import backports
>>> print(backports)
<module 'backports' (built-in)>

どうやら私はどこかにいく぀かの組み蟌みパッケヌゞを持っおいお、物事を台無しにしおいたす。 しかし、私はそれらを芋぀ける方法がわかりたせん。 ルヌト暩限がないので、芋぀けおも䜕も倉曎できない堎合がありたす。

そこに衚瀺されたフォルダ /nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports/ に他に䜕かありたすか

いいえ、アンむンストヌルされたので、フォルダは完党に倱われおいたす。 フォルダもそうです
../site-packages/backports.shutil-get-terminal-size-1.0.0は、むンストヌル時に存圚しおいたした。

Pythonでbackports.__path__をチェックできたすか

バックポヌトがむンストヌルされおいない堎合
['/nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports']

以前ず同じディレクトリですか それは間違いなく欠けおいたすか そこに䜕もない堎合、どうやっおその道を芋぀けるこずができるのか分かりたせん。

anaconda2_serverwideディレクトリで可胜なすべおのバックポヌトを怜玢したした。 これが䜕を意味するのかわかりたせん。
これは私が芋぀けたものです

file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/future-0.15.2-py27_0/lib/python2.7/site-packages/future/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/configparser-3.5.0-py27_0/lib/python2.7/site-packages/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/ssl_match_hostname-3.4.0.2-py27_1/lib/python2.7/site-packages/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/get_terminal_size-1.0.0-py27_0/lib/python2.7/site-packages/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/future/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports.shutil_get_terminal_size-1.0.0-py27_1/lib/python2.7/site-packages/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports-1.0-py27_0/lib/python2.7/site-packages/backports
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports-1.0-py27_0
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports_abc-0.4-py27_0
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports_bak
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports.shutil_get_terminal_size-1.0.0-py27_1/lib/python2.7/site-packages/backports.shutil_get_terminal_size-1.0.0.dist-info
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports.shutil_get_terminal_size-1.0.0-py27_1
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/get_terminal_size-1.0.0-py27_0/lib/python2.7/site-packages/backports.shutil_get_terminal_size-1.0.0-py2.7.egg-info
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/ssl_match_hostname-3.4.0.2-py27_1/lib/python2.7/site-packages/backports.ssl_match_hostname-3.4.0.2-py2.7.egg-info
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports-1.0-py27_0.tar.bz2
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports.shutil_get_terminal_size-1.0.0-py27_1.tar.bz2
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports_abc-0.4-py27_0/lib/python2.7/site-packages/backports_abc-0.4-py2.7.egg-info
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports_abc-0.4-py2.7.egg-info
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/conda-meta/backports-1.0-py27_0.json
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/conda-meta/backports_abc-0.4-py27_0.json
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/conda-meta/backports.shutil_get_terminal_size-1.0.0-py27_1.json
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports_abc.py
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports_abc-0.4-py27_0/lib/python2.7/site-packages/backports_abc.py
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports_abc.pyc
file:///nobackup/archimedes1/Glad/anaconda2_serverwide/pkgs/backports_abc-0.4-py27_0/lib/python2.7/site-packages/backports_abc.pyc

backportsをアンむンストヌルした埌、Pythonを再起動したしたか そうでない堎合は、Pythonを再起動しお、 backports.__path__をもう䞀床確認できたすか そこにファむルがない堎合にそのパスを識別する方法はわかりたせん。

Pythonを再起動するにはどうすればよいですか

私も次のこずを詊したした

> conda list | grep backports
backports                 1.0                      py27_0  
backports.shutil_get_terminal_size 1.0.0                    py27_1    conda-forge
backports_abc             0.4                      py27_0  

そこで、condaを䜿甚しおbackports.shutil_get_terminal_sizeを削陀したした。
> conda uninstall backports.shutil_get_terminal_size

Pythonでbackports.shutil_get_terminal_sizeをむンポヌトしようずするず、芋぀かりたせん。 そこで、ipythonずjupyterを削陀し、condaを介しおipythonを再むンストヌルしたした。これにより、jupyterずbackports.shutil_get_terminal_sizeもむンストヌルされたした。 ただし、それでも機胜したせん。 私は困惑しおいたす。

次に、condaを介しおむンストヌルを削陀し、pipを介しお再むンストヌルしたした。 それは_ただ_動䜜したせん...。

Pythonを再起動するにはどうすればよいですか

それを閉じお exit() 、もう䞀床開始したす。

バックポヌトを確認したした

> conda list | grep backports
backports                 1.0                      py27_0  
backports.shutil_get_terminal_size 1.0.0                    py27_1    conda-forge
backports_abc             0.4                      py27_0  

再起動埌にpythonを実行したした

>>> import backports
>>> backports.shutil_get_terminal_size
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'shutil_get_terminal_size'

それをアップグレヌドしようずしたした

> pip install --upgrade backports.shutil_get_terminal_size
Requirement already up-to-date: backports.shutil_get_terminal_size in /nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages

わかりたせん。 他に䜕ができたすか 「terminal.py」を線集しお正しい方向に向けるこずはできたすか

すべおのバックポヌトパッケヌゞをアンむンストヌルする堎合は、Pythonを再起動しお、次のこずを確認しおください。

import backports
backports.__path__

䜕がもらえたすか

>>> import backports
>>> backports.__path__
['/home/raid2/mihai/.local/lib/python2.7/site-packages/backports', '/nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports']

以前のディレクトリ /home/raid2の䞋のディレクトリに䜕かむンストヌルされおいたすか

これは、システム党䜓のpythonおよびipythonパッケヌゞが保存されおいるディレクトリです。 ただし、ロヌカルのanacondaむンストヌルを䜿甚しおいるため、これらは䜿甚しおいたせん。 そしおそれは干枉するべきではありたせん。 正盎なずころ、/ home / raid2 ...ディレクトリの䞋には、backports.shutil_get_terminal_sizeパッケヌゞはありたせん。

システム党䜓のむンストヌル叀いバヌゞョンのipythonを䜿甚を実行するず、問題なく実行されたす。 しかし、新しいanacondaを䜿甚しお環境を開始するず、
export PATH="/nobackup/archimedes1/Glad/anaconda2_serverwide/bin:$PATH" 、りィンドりサむズ関数が芋぀かりたせん。

これをデバッグするのに圹立぀スクリプトを䜜成したした。 それを実行しお出力を投皿できたすか

https://gist.github.com/takluyver/73cf4e7e7cff4d95f3b23ea80d59bcab

了解したした!!! 1

これは私がどういうわけかそれを機胜させるためにしたこずです。
condaずpipの䞡方を䜿甚しおipythonずjupyterおよびbackports.shutil_get_window_sizeをアンむンストヌルしたした。

conda uninstall jupyter ipython backports.shutil_get_window_size
pip uninstall jupyter ipython backports.shutil_get_window_size

パッケヌゞが残っおいないこずを確認したした。 次に、condaを䜿甚しおipythonのみを再むンストヌルしたした。

> conda install ipython
Fetching package metadata .........
Solving package specifications: ..........

Package plan for installation in environment //nobackup/archimedes1/Glad/anaconda2_serverwide:

The following NEW packages will be INSTALLED:

    backports:                          1.0-py27_0              
    backports.shutil_get_terminal_size: 1.0.0-py27_1 conda-forge
    ipython:                            5.1.0-py27_1 conda-forge

Proceed ([y]/n)? y

Extracting packages ...
[      COMPLETE      ]|###################################################################################| 100%
Linking packages ...
[      COMPLETE      ]|###################################################################################| 100%
mihai<strong i="11">@archimedes</strong>:/tmp > ipython

そしお今、それは動䜜したす!!! 寛倧な時間をありがずう@takluyver 

スクリプトの出力は次のずおりです。

In [2]: run debug_namespace_pkg.py
mod: <module 'backports' from '/home/raid2/mihai/.local/lib/python2.7/site-packages/backports/__init__.pyc'>

backports.__path__ = ['/home/raid2/mihai/.local/lib/python2.7/site-packages/backports', '//nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports']

Found /home/raid2/mihai/.local/lib/python2.7/site-packages/backports
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)


Found //nobackup/archimedes1/Glad/anaconda2_serverwide/lib/python2.7/site-packages/backports
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

OK、動䜜しおよかったです。 スクリプトからの出力は、想定どおりのものを衚瀺するようになりたした。 将来誰かがこの問題を抱えおいる堎合、スクリプトが圹立぀こずを願っおいたす。

私も同じ問題を抱えおいたす。 最初からすべおを詊し、すべおをアンむンストヌルしおむンストヌルしたした。 たた、䞊蚘で共有したスクリプトを実行したした-
出力は次のずおりです。

aranyo-139-61:Desktop shiva$ python debug_namespace_pkg.py
mod: <module 'backports' (built-in)>

backports.__path__ = ['/Users/shiva/Library/Python/2.7/lib/python/site-packages/backports']

Found /usr/local/lib/python2.7/site-packages/backports
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)


Found /Users/shiva/Library/Python/2.7/lib/python/site-packages/backports
No __init__.py found
Found /usr/local/lib/python2.7/site-packages/backports
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

これを手䌝っおくれたせんか。 でもコンダは䜿いたくない。

ありがずう

/Users/shiva/Library/Python/2.7/lib/python/site-packages/backportsに䜕かありたすか 削陀/名前倉曎しおみおください。

/Users/shiva/Library/Python/2.7/lib/python/site-packages/backportsに䜕かありたすか 削陀/名前倉曎しおみおください。

詊しおみたしたが、それでも同じ問題です。

デバッグスクリプトに倉曎を加えたした。もう䞀床取埗しお再実行しおみおください。

これが出力です-

mod: <module 'backports' (built-in)>

backports.__path__ = ['/Users/shiva/Library/Python/2.7/lib/python/site-packages/backports']

-- Found /usr/local/lib/python2.7/site-packages/backports --
Files: ['__init__.py', '__init__.pyc', 'shutil_get_terminal_size']
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)


-- Found /usr/local/lib/python2.7/site-packages/backports --
Files: ['__init__.py', '__init__.pyc', 'shutil_get_terminal_size']
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

そのディレクトリを削陀/名前倉曎しおからPythonを再起動したしたか それはただ䜕ずかそれを芋぀けおいたす。

「pythondebug_namespace_pkg.py」コマンドを䜿甚しおスクリプトを実行しおいたす。 そしお、私はそれをする前にタヌミナルを再起動したした。

そしお、 /Users/shiva/Library/Python/2.7/lib/python/site-packages/backports間違いなく存圚したせんか 以前のように、どうやらそこにないフォルダぞの参照を取埗する方法がわかりたせん。

はい、指定した堎所で名前を倉曎したした。 /usr/local/lib/python2.7/site-packages/backportsを意味しおいたせんか

いいえ、それを芋぀ける必芁がありたす。 /Users/shivaの䞋のものがどういうわけか邪魔になっおいるようです。 この行は、それがただ䜕ずかしおそれを芋぀けおいるこずを瀺しおいたす

backports.__path__ = ['/Users/shiva/Library/Python/2.7/lib/python/site-packages/backports']

しかし、あなたがそれを削陀した埌、それがどのように可胜であるかはわかりたせん。 混乱しおいる

ああ、私が知らなかったこずがありたす .pkgファむル。 backports.pkgずいうファむルを探すこずができたすか

 backports.pkgは、おそらくそれらのsite-packagesディレクトリの1぀にありたすが、システム䞊の別の堎所にある可胜性がありたす

backports.pkgがどこにも芋぀かりたせん。 ルヌトフォルダにあるfind./* -namebackports.pkgを䜿甚したした。

最埌に、それはうたくいきたした。

そのフォルダの名前を倉曎しおも機胜したせんが、削陀しおも機胜したす。 あなたの助けをどうもありがずう:)

奇劙なこずに、名前を倉曎するだけで削陀するのずは異なる理由がわかりたせん。 ずにかく、うたくいったこずをうれしく思いたす。

私は同様の問題を抱えおおり、pipのアンむンストヌル/むンストヌルは圹に立たないようです。 これは、デバッグスクリプトの出力です python test.pyによる

mod: <module 'backports' (built-in)>

backports.__path__ = ['/home/ihincks/.local/lib/python2.7/site-packages/backports']

-- Found /usr/local/lib/python2.7/dist-packages/backports --
Files: ['__init__.py', '__init__.pyc', 'shutil_get_terminal_size']
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

私は持っおいる

$ ls /home/ihincks/.local/lib/python2.7/site-packages/ | grep backports
backports_abc-0.5.dist-info
backports_abc.py
backports_abc.pyc
backports.shutil_get_terminal_size-1.0.0

私は最終的に次のハック方法でそれを動䜜させたした。 Linuxの堎合 /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

繰り返したすが、どういうわけか、そこにないように芋えるディレクトリを芋぀けおいたす。 backport.pkgファむルも探すこずができたすか それをスクリプトに远加したす。

最新のスクリプトからの出力

mod: <module 'backports' (built-in)>

backports.__path__ = ['/home/ihincks/.local/lib/python2.7/site-packages/backports']

-- Found /usr/local/lib/python2.7/dist-packages/backports --
Files: ['__init__.py', '__init__.pyc', 'shutil_get_terminal_size']
__init__.py contains:
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

それは腹立たしいです。 最初のパス /home/ihincks/... をどのように芋぀けおいるのかわかりたせん。

/home/ihincks/.local/lib/python2.7/site-packages/に、なぜbackportsが芋぀かったのかを説明できるものは他にありたすか

䜕を探すべきか正確にはわかりたせん。 これが/home/ihincks/.local/lib/python2.7/site-packages/のすべおです

backports_abc-0.5.dist-info
backports_abc.py
backports_abc.pyc
backports.shutil_get_terminal_size-1.0.0
bleach
bleach-1.5.0.dist-info
certifi
certifi-2016.9.26.dist-info
configparser-3.5.0.dist-info
configparser-3.5.0-nspkg.pth
configparser.py
configparser.pyc
entrypoints-0.2.2.dist-info
entrypoints.py
entrypoints.pyc
enum
enum34-1.1.6.dist-info
functools32
functools32-3.2.3.post2.dist-info
html5lib
html5lib-0.9999999.dist-info
ipykernel
ipykernel-4.5.2.dist-info
ipython_genutils
ipython_genutils-0.1.0.dist-info
ipywidgets
ipywidgets-5.2.2.dist-info
jinja2
Jinja2-2.8.dist-info
jsonschema
jsonschema-2.5.1.dist-info
jupyter_client
jupyter_client-4.4.0.dist-info
jupyter_console
jupyter_console-5.0.0.dist-info
jupyter_core
jupyter_core-4.2.1.dist-info
markupsafe
MarkupSafe-0.23.dist-info
mistune-0.7.3.dist-info
mistune.py
mistune.pyc
nbconvert
nbconvert-5.0.0.dist-info
nbformat
nbformat-4.2.0.dist-info
pandocfilters-1.4.1.dist-info
pandocfilters.py
pandocfilters.pyc
pexpect
pexpect-4.2.1.dist-info
pickleshare-0.7.4.dist-info
pickleshare.py
pickleshare.pyc
prompt_toolkit
prompt_toolkit-1.0.9.dist-info
ptyprocess
ptyprocess-0.5.1.dist-info
pyzmq-16.0.2.dist-info
qtconsole
qtconsole-4.2.1.dist-info
simplegeneric-0.8.1.dist-info
simplegeneric.py
simplegeneric.pyc
singledispatch-3.4.0.3.dist-info
singledispatch_helpers.py
singledispatch_helpers.pyc
singledispatch.py
singledispatch.pyc
six-1.10.0.dist-info
six.py
six.pyc
terminado
terminado-0.6.dist-info
testpath
testpath-0.3.dist-info
tornado
tornado-4.4.2.dist-info
traitlets
traitlets-4.3.1.dist-info
wcwidth
wcwidth-0.1.7.dist-info
widgetsnbextension
widgetsnbextension-1.2.6.dist-info
zmq

backports.shutil_get_terminal_size-1.0.0ずは䜕ですかその䞭身は䜕ですか

これはPythonパッケヌゞであり、 backports.shutil_get_terminal_size $内の単䞀の関数get_terminal_sizeを公​​開しおいるようです。 このフォルダの構造は次のずおりです。

./
├── backports
│   ├── __init__.py
│   └── shutil_get_terminal_size
│       ├── get_terminal_size.py
│       └── __init__.py
├── backports.shutil_get_terminal_size.egg-info
│   ├── dependency_links.txt
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   └── top_level.txt
├── HISTORY.rst
├── LICENSE
├── MANIFEST.in
├── PKG-INFO
├── README.rst
├── setup.cfg
├── setup.py
├── test_shutil_get_terminal_size.py
└── tox.ini

PKG-INFOの内容は次のずおりです。

Metadata-Version: 1.1
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]
License: MIT
Description: backports.shutil_get_terminal_size
        ==================================

        A backport of the `get_terminal_size`_ function from Python 3.3's shutil.

        Unlike the original version it is written in pure Python rather than C,
        so it might be a tiny bit slower.

        .. _get_terminal_size: https://docs.python.org/3/library/shutil.html#shutil.get_terminal_size


        Example usage
        -------------

            >>> from backports.shutil_get_terminal_size import get_terminal_size
            >>> get_terminal_size()
            terminal_size(columns=105, lines=33)



        History
        =======

        1.0.0 (2014-08-19)
        ------------------

        First release.

Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2

ああ、わかりたした。ある時点でsdistを手動で解凍したず思いたす。 そのディレクトリ党䜓 backports.shutil_get_terminal_size-1.0.0 を削陀しおも違いはありたすか ただのニシンだず思いたす。

さお、 /usr/local/lib/python2.7/dist-packages/IPython/utils/terminal.pyを元の圢匏に戻したした。 ipythonを実行し、 ImportError: No module named shutil_get_terminal_size゚ラヌが発生したした。

次に、フォルダ/home/ihincks/.local/lib/python2.7/site-packages/backports.shutil_get_terminal_size-1.0.0を/home/ihincksに䞀時的に移動したした。 同じ゚ラヌで、もう䞀床ipythonを実行したした。

OK、そのフォルダはただの赀いニシンです、そしお私はそれがどのように/home/ihincks/.local/lib/python2.7/site-packages/backportsを芋぀けおいるかに぀いおただ暗闇の䞭にいたす:-(

うヌん、もっず助けおくれたらいいのに、䜕が起こっおいるのか半分しか理解しおいたせん。 Pythonパス/ラむブラリのむンストヌルは䞀般的に私を混乱させたす。

問題ありたせん、これはかなりよく隠された黒魔術のようです。

誰かが私にsshアクセスを蚱可しお、䜕が起こっおいるのかを理解しようずするシステムでこれを耇補できる堎合は、連絡しおください。

私も同じ問題を抱えおいたす.......最近jupyterをむンストヌルしたしたが、ipythonノヌトブックファむルを開こうずするず、backports.shutil_get_terminal_sizeのむンポヌト゚ラヌでカヌネルが停止しおいるず衚瀺されたす。 最埌に、pipをアップグレヌドし、jupyterずbackports.shutil-get-terminal-sizeを数回再むンストヌルし、最埌に次のコマンドを実行した埌、この問題を解決したしたpython2 -m ipykernel install--user。 それが私のカヌネルに呜を吹き蟌みたした。 参照 http //askubuntu.com/questions/847263/install-jupyter-for-python-2-7-in-ubuntu-14-04

そのため、この問題が発生し、/ usr / lib / python2.7 / site-packages / backports.shutil_get_terminal_size-1.0.0.dist-infoを調べたずころ、次のものしか芋぀かりたせんでした。

total 28
-rw-r--r--. 1 root root  596 Feb 27 10:42 DESCRIPTION.rst
-rw-r--r--. 1 root root    4 Feb 27 10:42 INSTALLER
-rw-r--r--. 1 root root 1175 Feb 27 10:42 METADATA
-rw-r--r--. 1 root root  701 Feb 27 10:42 metadata.json
-rw-r--r--. 1 root root 1455 Feb 27 10:42 RECORD
-rw-r--r--. 1 root root   10 Feb 27 10:42 top_level.txt
-rw-r--r--. 1 root root  110 Feb 27 10:42 WHEEL

むンポヌトするものはありたせん。 これは、pip --upgrade、pipのアンむンストヌル/ ipythonのむンストヌルなどの埌に行われたす。 ぀たり、pipは実際にはパッケヌゞをむンストヌルしおおらず、ホむヌルだけをむンストヌルしおいるように芋えたす。 .tar.gzファむルをダりンロヌドし、wheelディレクトリにコピヌしお、ipythonで発生した問題を修正したした。 それを修正する正しい方法ではありたせん。 私はRHEL7で実行しおいるので、おそらくそれず関係がありたす。

.dist-infoで終わるディレクトリは、むンストヌルされたパッケヌゞに関するメタデヌタファむルであり、むンポヌト可胜なものを含むこずを意図したものではありたせん。 コヌドは隣接するディレクトリにある必芁がありたす /usr/lib/python2.7/site-packages/backports

たぶんコヌドはあなたを助けるこずができたす pip install --user backports.shutil_get_terminal_size 、あなたのipythonがrootたたは他のナヌザヌにずっお倧䞈倫なら、珟圚のナヌザヌのためにそれをむンストヌルするだけです。

こんにちはみんな、

あなたたちがこれを修正しようずした堎合

pip install backports.shutil_get_terminal_size

しかし、それは機胜したせんでした。

最善の方法は、sysパスを調べるこずです

import sys
print sys.path

ipythonモデルの正しいパスの前にバックポヌトパッケヌゞがあるかどうかを各パスで確認し、盎接削陀したす。

私はこのバグの非垞に奇劙なバヌゞョンを持っおいたす

pde<strong i="6">@damoclid</strong>:~$ 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
pde<strong i="7">@damoclid</strong>:~$ python
Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> 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
>>> import sys
>>> print [p for p in sys.path if os.path.exists(p + "/backports")]
['/usr/lib/python2.7/dist-packages']
>>> import backports
>>> backports.__path__
['/usr/local/lib/python2.7/dist-packages/backports']
>>> os.path.exists("/usr/local/lib/python2.7/dist-packages/backports")
False
>>> dir(backports)
['__doc__', '__name__', '__path__']
>>> 
pde<strong i="8">@damoclid</strong>:~$ cd /usr/local/bin/
pde<strong i="9">@damoclid</strong>:/usr/local/bin$ cd ..
pde<strong i="10">@damoclid</strong>:/usr/local$ sudo find . -iname \*backports\*
pde<strong i="11">@damoclid</strong>:/usr/local$

なぜPythonがパッケヌゞ化されたネむティブOS backports / backports.shutil_get_terminal_sizeを芋぀けられないのか、たたは/ usr / localでbackportsの幜霊のようなバヌゞョンを芋぀けおいるのか本圓にわかりたせん/ lib。 私のsys.pathは次のずおりです。

['', '/usr/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages/ropevim-0.7.0-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/pde/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']

pde<strong i="13">@damoclid</strong>:/usr/local$ ls -ld `dpkg -L python-backports-shutil-get-terminal-size `
drwxr-xr-x   26 root root   4096 Mar  7 23:01 /./
drwxr-xr-x   12 root root   4096 Apr  5  2014 /usr/
drwxr-xr-x  201 root root  36864 May 14 22:01 /usr/lib/
drwxr-xr-x   27 root root  20480 Apr  4 15:53 /usr/lib/python2.7/
drwxr-xr-x  296 root root  20480 May 15 18:02 /usr/lib/python2.7/dist-packages/
drwxr-xr-x    3 root root   4096 May 15 17:35 /usr/lib/python2.7/dist-packages/backports/
-rw-r--r--    1 root root     75 Aug 19  2014 /usr/lib/python2.7/dist-packages/backports/__init__.py
drwxr-xr-x    2 root root   4096 May 15 17:35 /usr/lib/python2.7/dist-packages/backports/shutil_get_terminal_size/
drwxr-xr-x    2 root root   4096 May 15 17:35 /usr/lib/python2.7/dist-packages/backports.shutil_get_terminal_size-1.0.0.egg-info/
-rw-r--r--    1 root root      1 Jul 28  2016 /usr/lib/python2.7/dist-packages/backports.shutil_get_terminal_size-1.0.0.egg-info/dependency_links.txt
-rw-r--r--    1 root root   1402 Jul 28  2016 /usr/lib/python2.7/dist-packages/backports.shutil_get_terminal_size-1.0.0.egg-info/PKG-INFO
-rw-r--r--    1 root root     10 Jul 28  2016 /usr/lib/python2.7/dist-packages/backports.shutil_get_terminal_size-1.0.0.egg-info/top_level.txt
-rw-r--r--    1 root root   2913 Aug 19  2014 /usr/lib/python2.7/dist-packages/backports/shutil_get_terminal_size/get_terminal_size.py
-rw-r--r--    1 root root    338 Aug 19  2014 /usr/lib/python2.7/dist-packages/backports/shutil_get_terminal_size/__init__.py
drwxr-xr-x  398 root root  12288 May 14 22:01 /usr/share/
drwxr-xr-x 3114 root root 126976 May 15 18:02 /usr/share/doc/
drwxr-xr-x    2 root root   4096 May 15 17:35 /usr/share/doc/python-backports-shutil-get-terminal-size/
-rw-r--r--    1 root root    333 Jul 28  2016 /usr/share/doc/python-backports-shutil-get-terminal-size/changelog.Debian.gz
-rw-r--r--    1 root root     71 Aug 19  2014 /usr/share/doc/python-backports-shutil-get-terminal-size/changelog.gz
-rw-r--r--    1 root root   1372 Jul 28  2016 /usr/share/doc/python-backports-shutil-get-terminal-size/copyright

再開しお5.4ずしおタグ付けしたす。安党のために、 shutil_get_terminal_sizeをベンダヌに提䟛する必芁があるず思いたす。

@Carreau fwiwここにpipたたはpythonのバグがあるか、䜕か愚かなこずをしたか、あるいはその䞡方のように感じたす。 いく぀かのより知識のあるピップの人々を通り越しおそれを実行したす。

実際には存圚しないbackportsパッケヌゞが芋぀かった別のケヌス。 そのようなこずを報告しおいる人もいたすが、どちらから来おいるのかわかりたせん。 このスクリプトを実行しおみたせんか そしお、それに圱響を䞎えおいる可胜性のある.pkg $$ファむルず.pthファむルを探したす。

私のシステムの@Carreauでは、問題はconfigparserモゞュヌルの存圚であるこずが刀明したした。

pde<strong i="8">@damoclid</strong>:~/aip$ sudo grep backport `locate *.pth`
/usr/local/lib/python2.7/dist-packages/configparser-3.5.0-nspkg.pth:import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('backports',));ie = os.path.exists(os.path.join(p,'__init__.py'));m = not ie and sys.modules.setdefault('backports', types.ModuleType('backports'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p)
pde<strong i="9">@damoclid</strong>:~/aip$ pip freeze | grep configp
configparser==3.3.0.post2
pde<strong i="10">@damoclid</strong>:~/aip$ cd /usr/local/lib/
pde<strong i="11">@damoclid</strong>:/usr/local/lib$ find . -iname *configp*
./python2.7/dist-packages/configparser-3.5.0.dist-info
./python2.7/dist-packages/future/moves/configparser.py
./python2.7/dist-packages/future/moves/configparser.pyc
./python2.7/dist-packages/configparser.py
./python2.7/dist-packages/configparser-3.5.0-nspkg.pth
./python2.7/dist-packages/configparser.pyc
pde<strong i="12">@damoclid</strong>:/usr/local/lib$ sudo pip uninstall configparser
Not uninstalling configparser at /usr/lib/python2.7/dist-packages, outside environment /usr
pde<strong i="13">@damoclid</strong>:/usr/local/lib$ sudo rm -rf `find . -iname *configp*`
pde<strong i="14">@damoclid</strong>:/usr/local/lib$ ipython
Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.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]:                                                                                                                                                                 
Do you really want to exit ([y]/n)? y

これをデバッグするのを手䌝っおくれた@erikroseに感謝したす。

10587ベンダヌずしおこのこずを締めくくり、IPython5.4はたもなくリリヌスされる予定です

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