web-dev-qa-db-ja.com

ImportError:名前_remove_dead_weakrefをインポートできません

私は周りを検索しようとしましたが、この特定のエラーで適切な修正または他の人を見つけることができませんでした。

apt-get install screenで画面をインストールしようとすると発生します。

エラー:

Setting up python3.6-minimal (3.6.1-1~14.04.york0) ...
Traceback (most recent call last):
  File "/usr/lib/python3.6/py_compile.py", line 6, in <module>
    import importlib._bootstrap_external
  File "/usr/lib/python3.6/importlib/__init__.py", line 57, in <module>
    import types
  File "/usr/lib/python3.6/types.py", line 171, in <module>
    import functools as _functools
  File "/usr/lib/python3.6/functools.py", line 23, in <module>
    from weakref import WeakKeyDictionary
  File "/usr/lib/python3.6/weakref.py", line 12, in <module>
    from _weakref import (
ImportError: cannot import name '_remove_dead_weakref'
dpkg: error processing package python3.6-minimal (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of python3.6:
 python3.6 depends on python3.6-minimal (= 3.6.1-1~14.04.york0); however:
  Package python3.6-minimal is not configured yet.

dpkg: error processing package python3.6 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python3.6-minimal
 python3.6
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ubuntu 14.04を実行しています。

画面自体は最新バージョンにインストールされているようですが、エラーメッセージはまだ心配しています。

ここでは本当に困っていますが、どんな助けも大歓迎です。

23
antonlab

Ubuntu 16.10でPycharm 2017.3.2を使用していたときに、最近この問題に遭遇しました。

私のセットアップは:

Python PPAからpython 3.6をインストールしました。 Python 3.6.0b4がありました。ただし、Ubuntuを17.04にアップグレードしたばかりですが、まだリブートしていませんでした。コンピューターを再起動したとき、まだそのエラーがスローされていました。したがって、デフォルトのpython3.6がターミナルにあるものを確認しようとしました。

➜  ~ python3.6
Python 3.6.1 (default, Mar 22 2017, 06:17:05) 
[GCC 6.3.0 20170321] on linux
Type "help", "copyright", "credits" or "license" for more information.

そのため、virtualenvにあったPythonが古いか、間違ったPythonバージョンを指している可能性があることに気付きました。

ソリューション

  • Python 3.6のどのバージョンをインストールしたかを確認しました(3.6.1)。
  • 仮想環境を削除しました。
  • Virtualenvwrapperを使用して新しい仮想環境を作成しました:mkvirtualenv --python=python3.6

  • Pipで要件をインストールしました:pip install -r requirements.txt

16
Hectron

Ubuntu 17.10にアップグレードした後、私に起こりました。 python 2.7 virtualenvのフォルダーに移動し、次のように入力して修正しました。

virtualenv -p /usr/bin/python2.7 .
9
Ciske Boekelo

これは、Ubuntuを17.10にアップグレードした後に起こりました。

Python virtualenvにインストールされたアプリケーションを実行しようとしました。

このように修正しました:

cd my-virtualenv-directory
virtualenv . --system-site-packages

アプリケーションはUbuntuのpython-gtkを使用するため、オプション--system-site-packagesが必要でした。他のほとんどの場合、それは必要ないと思います。

ImportError: cannot import name _remove_dead_weakrefはなくなりました:-)

6
guettli

最近、同様の問題に遭遇しました(私の特定のケースは、システムpythonインストールの更新後にvirtualenvを使用していました)。この debianバグレポート レポートによると、ローカルインストールのpythonはシステムのインストールを妨害するようです。ソースからpythonをインストールしたと言ったので、おそらく問題です。リンクされたバグレポートは、pythonを/usr/localにインストールしないことを推奨しています(--prefix=/some/other/directoryフラグを./configureに使用して、異なるプレフィックスにインストールできます)。

4
jonathanverner