ImportError:无法导入名称_remove_dead_weakref


25

我已经尝试过搜索,但是没有找到一个很好的解决方法或出现此特定错误的其他任何人。

我尝试使用安装屏幕后,就会发生这种情况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。

屏幕本身似乎已安装到最新版本,但错误消息仍然让我担心。

真是茫然,在这里,任何帮助都将不胜感激。


您如何python3.6在14.04上安装?
steeldriver

@steeldriver jonathanf库:askubuntu.com/questions/865554/...
antonlab

2
也许这是ppa的问题?
steeldriver

@steeldriver我可能还使用另一种方法安装了python3.6(我认为它是从源代码调用的?),因此可能存在冲突。试图弄清楚如何立即正确重新安装,
antonlab

Answers:


16

我最近在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创建了新的virtualenvironment: mkvirtualenv --python=python3.6

  • 用pip安装了要求: pip install -r requirements.txt


刚在我躺在的另一台笔记本电脑上遇到了这个问题。这些步骤有助于解决我的问题。:D
Hectron


6

在将Ubuntu升级到17.10之后,这发生在我身上。

我试图运行一个安装在Python virtualenv中的应用程序。

我这样修复:

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

该选项--system-site-packages是必需的,因为该应用程序使用来自Ubuntu的python-gtk。我猜在大多数其他情况下是不需要的。

现在ImportError: cannot import name _remove_dead_weakref不见了:-)


1
升级到18.04后,我遇到了这个问题,该修补程序也对我有用,而无需重新安装任何虚拟环境。谢谢!
aspiring_sarge

4

我最近遇到了一个类似的问题(我的特定情况是在更新系统python安装后使用了virtualenv)。根据这份debian错误报告报告,似乎本地安装的python可能会干扰系统。既然您说过从源代码安装python,那可能就是问题所在。链接的错误报告建议不要将python安装到其中/usr/local(您可以使用--prefix=/some/other/directory标志来安装到其他前缀./configure)。


有趣。我对Linux还是很陌生,但是我会发现我可以找到的有关这样做的知识。
antonlab

我在家里安装了miniconda,幸运的是,在设置miniconda的外壳之后,打开一个新的外壳可以解决问题。
弗雷德·斯科恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.