Nhập khẩuError: Không có mô-đun có tên _struct Cấu hình cấu hình python-Minimal


10

Khi tôi chạy sudo apt-get upgrade, lỗi dpkg xuất hiện và làm gián đoạn quá trình.

Chi tiết lỗi:

Setting up python-minimal (2.7.3-0ubuntu7.1) ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/local/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/local/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing python-minimal (--configure):
 subprocess installed post-installation script returned error exit status 255
dpkg: dependency problems prevent configuration of python:
 python depends on python-minimal (= 2.7.3-0ubuntu7.1); however:
  Package python-minimal is not configured yet.

Và vấn đề này dẫn đến một loạt các vấn đề phụ thuộc khi xử lý các gói sau:

 python
 gwibber-service
 libgwibber3
 libgwibber-gtk3
 gwibber
 gwibber-service-facebook
 gwibber-service-identica
 gwibber-service-twitter
 python-all
 python-dev
 python-all-dev
 python-apt
 python-problem-report
 python-apport
 python-libxml2
 unity-lens-gwibber
 unity-scope-video-remote

Cuối cùng, tôi không thể làm gì cho vấn đề này. Và vài ngày sau, thư mục gốc đã đầy và tôi thậm chí không thể gỡ cài đặt bất kỳ phần mềm nào vì sự cố này.


có thể trùng lặp với Askubfox.com/q/270011/169736
Braiam

@Braiam, tôi đã tìm thấy câu hỏi này trước đây. Các câu trả lời được đề nghị để cài đặt lại python. Tôi đã thử, và thất bại. Dẫu sao cũng xin cảm ơn!
Java Xu

sudo apt-get clean giúp lấy lại không gian
frlan

Tôi đã thay đổi /usr/bin/pythonliên kết tượng trưng của mình để trỏ đến python3.5và nó gây ra một lỗi rất giống với điều này. Không chắc chắn tại sao, có lẽ phải làm với việc đã có python2.7deps bị hỏng khi tôi thay đổi liên kết tượng trưng mà không có cảnh báo. IDK, để lại đây cho khách du lịch trong tương lai
quietContest

Câu trả lời:



1

OK, đi qua các gói, tôi thấy rằng python-Minimal không có struct.py, nhưng python-minim2.7 thì có.

Vì vậy, hãy thử điều này và xem nếu nó giúp bạn ra ngoài:

sudo apt-get install --reinstall python2.7-minimal
sudo apt-get upgrade

Nếu ngay cả điều đó không hoạt động, có lẽ $ PYTHONPATH của bạn bị rối tung bằng cách nào đó.

nano ~/.bashrc

Thêm dòng export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"sau đó

source ~/.bashrc

Và thử cập nhật của bạn một lần nữa.


được chỉnh sửa để thêm "xuất khẩu", đây là loại cần thiết;)
Chuck R

Nó nói "Không thể xác định vị trí gói python-Minimal2.7". Bạn có nghĩa là python2.7-tối thiểu? Khi tôi cố gắng cài đặt lại python2.7-Minimal, vấn đề phụ thuộc tương tự xảy ra.
Java Xu

Hmm, xin lỗi, tôi mất quá nhiều thời gian để quay lại với bạn. Hãy thử sudo apt-get clean sudo apt-get update sudo apt-get upgrade.
Chuck R

1
Tôi sợ rằng nó không hoạt động. Sau đó clean, updateupgradesau đó tôi cố gắng cài đặt lại python2.7-minimal, nhưng vấn đề phụ thuộc tương tự xuất hiện và lại reinstallthất bại.
Java Xu

Hình như tôi đã sai về gói nào. Nó thực sự là libpython2.7-Minimal có chứa struct.py. Hãy chắc chắn rằng nó đã được cài đặt. Phiên bản hiện tại của python2.7-Minimal mà bạn đã cài đặt là gì? Gợi ý:dpkg -l | grep python2.7-minimal
Chuck R

1

Thử đi

sudo apt purge libpython*

Tôi đã xóa python2.7 và 3.7, sau đó xóa các tệp liên quan khỏi hệ thống. Sau đó tôi thấy mình không thể cài đặt lại python2.7 Đã thử nhiều phương thức vẫn không hoạt động, bao gồm:

xóa liên kết mềm

del ảo env dirs

tự động

sudo dpkg --purge `dpkg --get-selections | grep deinstall | cut -f1`

Sau đó, tôi đã tìm thấy một số tệp libpython bằng cách tìm kiếm toàn bộ hệ thống libpython*python.

Hy vọng điều này có thể giúp một số người có vấn đề tương tự


0

Không biết điều này có giúp ích gì cho bạn không, đó là một chút đâm trong bóng tối, nhưng hãy đảm bảo phiên bản Python mặc định của bạn được đặt thành 2.7.

Có ba tệp quan tâm trong / usr / bin:

python (symlink)
python2.7
python3 (symlink)

Nếu bạn làm ls -l /usr/bin | grep pythonbạn sẽ thấy những gì mỗi symlink trỏ đến.

Nếu nó cho bạn thấy python -> python3hoặc python -> python3.3có điều gì đó sai. Tại thời điểm này, bạn sẽ muốn:

rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python

Cảm ơn vì đã trả lời. Trong tôi /usr/bin, pythonđược liên kết mềm với python2.7.
Java Xu

Tại sao lại thế này? Tôi đã thay đổi liên kết tượng trưng của mình để trỏ đến python3.5, và nó đã làm hỏng một số lượng lớn các gói python apt. Tại sao tôi không thể mặc định với Python3? Cách chính xác là gì?
quietContest
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.