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 jonathanf repository: askubuntu.com/questions/865554/…
antonlab

2
อาจเป็นปัญหากับ ppa หรือไม่
ขับขี่เหล็ก

@steeldriver ฉันอาจติดตั้ง python3.6 โดยใช้วิธีอื่น (ฉันคิดว่ามันถูกเรียกจากแหล่งที่มา?) ดังนั้นอาจมีสิ่งที่ขัดแย้งกัน กำลังพยายามหาวิธีการติดตั้งใหม่อย่างถูกต้องในขณะนี้
antonlab

คำตอบ:


16

ฉันเพิ่งพบปัญหานี้เมื่อฉันใช้ Pycharm 2017.3.2 บน Ubuntu 16.10

การตั้งค่าของฉันคือ:

ฉันติดตั้ง Python 3.6 จาก python PPA ฉันมี Python 3.6.0b4 อย่างไรก็ตามฉันเพิ่งอัพเกรด Ubuntu เป็น 17.04 แต่ยังไม่ได้รีบูท เมื่อฉันรีบูทคอมพิวเตอร์มันก็ยังทิ้งข้อผิดพลาดนั้นอยู่ ดังนั้นฉันจึงพยายามที่จะดูว่าค่าเริ่มต้นpython3.6คืออะไรใน terminal

  ~ 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.

ดังนั้นฉันตระหนักว่า Python ที่ฉันมีใน virtualenv ของฉันอาจล้าสมัยหรือชี้ไปที่เวอร์ชัน Python ที่ไม่ถูกต้อง

วิธีแก้ปัญหา :

  • ตรวจสอบให้แน่ใจว่าฉันติดตั้ง Python 3.6 เวอร์ชันใดแล้ว (3.6.1)
  • ลบสภาพแวดล้อมเสมือนจริงของฉัน
  • สร้างสภาพแวดล้อมเสมือนจริงใหม่โดยใช้ virtualenvwrapper: mkvirtualenv --python=python3.6

  • ติดตั้งข้อกำหนดด้วย pip: pip install -r requirements.txt


เพิ่งพบเจอกับแล็ปท็อปเครื่องอื่นที่ฉันวางไว้ ขั้นตอนเหล่านี้ช่วยแก้ไขปัญหาของฉัน : D
Hectron

9

เกิดขึ้นกับฉันหลังจากอัปเกรดเป็น Ubuntu 17.10 ฉันแก้ไข python 2.7 virtualenv ของฉันโดยไปที่โฟลเดอร์และป้อน:

virtualenv -p /usr/bin/python2.7 .

1
ขอบคุณสิ่งนี้ยังทำงานหลังจากการอัพเกรดจาก 16.04 เป็น 18.04
James Bradbury

6

สิ่งนี้เกิดขึ้นกับฉันหลังจากอัปเกรด Ubuntu เป็น 17.10

ฉันพยายามเรียกใช้แอปพลิเคชันที่ติดตั้งใน Python virtualenv

ฉันแก้ไขมันเช่นนี้:

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

ต้องการตัวเลือก--system-site-packagesเนื่องจากแอปพลิเคชันใช้ python-gtk จาก Ubuntu ฉันเดาในกรณีอื่น ๆ ส่วนใหญ่มันไม่จำเป็น

ตอนนี้ImportError: cannot import name _remove_dead_weakrefหายไป :-)


1
ฉันประสบปัญหานี้หลังจากอัปเกรดเป็น 18.04 และการแก้ไขนี้ก็ใช้ได้สำหรับฉันเช่นกันโดยไม่จำเป็นต้องติดตั้งสภาพแวดล้อมเสมือนใด ๆ ขอขอบคุณ!
aspiring_sarge

4

ฉันเพิ่งพบปัญหาที่คล้ายกัน (กรณีเฉพาะของฉันใช้ virtualenv หลังจากปรับปรุงการติดตั้งงูใหญ่ระบบ) ตามรายงานข้อผิดพลาดเดเบียนนี้ดูเหมือนว่าการติดตั้ง python แบบโลคัลสามารถรบกวนระบบได้ เนื่องจากคุณบอกว่าคุณติดตั้งหลามจากแหล่งที่มานั่นอาจเป็นปัญหา รายงานบั๊กที่เชื่อมโยงไม่แนะนำให้ติดตั้งไพ ธ อน/usr/local(คุณสามารถติดตั้งกับคำนำหน้าอื่นโดยใช้--prefix=/some/other/directoryแฟล็กถึง./configure)


น่าสนใจ ฉันยังค่อนข้างใหม่กับ linux แต่ฉันจะเห็นสิ่งที่ฉันสามารถทำได้เกี่ยวกับการทำเช่นนั้น
antonlab

ฉันติดตั้ง miniconda ในบ้านของฉันและโชคดีที่สามารถแก้ไขปัญหาได้ด้วยการเปิดเปลือกใหม่หลังจากที่ฉันติดตั้ง miniconda
Fred Schoen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.