अपडेट-मैनेजर के साथ समस्या: उबंटू 13.10 में 'apt_pkg' नाम का कोई मॉड्यूल नहीं है, जिसने Python 3.4 को us / usr / local / lib पर स्थापित किया है


31

मैं उबंटू के लिए नया हूं और मैं उबंटू 13.10 पर अपडेट-मैनेजर चलाने की कोशिश कर रहा हूं। मुझे मिला:

jacopo@jacopo-laptop:~$ update-manager 
Traceback (most recent call last):
  File "/usr/bin/update-manager", line 28, in <module>
    from gi.repository import Gtk
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module> from ._gi import _API
ImportError: No module named 'gi._gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in <module>
import apt_pkg
ImportError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/bin/update-manager", line 28, in <module>
from gi.repository import Gtk
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module>
from ._gi import _API
ImportError: No module named 'gi._gi'

जहां तक ​​मैंने समझा है, यह इस तथ्य से संबंधित समस्या है कि मुझे python3.4 स्थापित करना चाहिए। मैंने इसे स्थापित किया है /usr/local/lib, लेकिन मुझे हमेशा वही त्रुटि मिलती है। इस तरह मैं उबंटू 14.04 में भी अपग्रेड नहीं कर सकता।

जवाबों:


34

स्थापना रद्द करें apt_pkg:

sudo apt-get install --reinstall python3-apt

त्रुटि मुख्य रूप से पुस्तकालय apt_pkg.cpython-35m-x86_64-linux-gnu.soमें मौजूद नहीं होने के कारण है /usr/lib/python3/dist-packages

हटाने और पुनः स्थापित करने में मदद करनी चाहिए।


14
उपयोग करते हुए एक कदम में पैकेज को फिर से स्थापित करना लगभग हमेशा बेहतर होता है sudo apt install --reinstall <package-name>, क्योंकि यह निर्भरता की गणना और हटाने से बचता है (और हटाने के लिए पैकेजों को चिह्नित करता है)। ध्यान रखें कि संकुल को हटाने है रहो नहीं हमेशा एक प्रतिवर्ती प्रक्रिया; उदाहरण के लिए, APT स्वयं या उसकी निर्भरता को हटा देगा यदि पूछा जाए! --reinstallझंडा इसलिए ज्यादा सुरक्षित की तुलना में है removeके बाद installremoveअपने आप में आदेश एक पैकेज के विन्यास फाइल को दूर नहीं करता तो पर कोई लाभ है install --reinstall
ज़न्ना

4
इस उत्तर को @Zanna द्वारा सुझाव के साथ अपडेट किया जाना चाहिए, python3-apt को हटाने से निर्भरता का एक टन निकल जाएगा और किसी से बकवास को डरा सकता है, न कि उनके सिस्टम को गड़बड़ करने का उल्लेख करने के लिए।
अल्केन

इसलिए sudo dpkg -r --force-depends apt-packageइसके बजाय apt-package की स्थापना रद्द करें जो केवल apt-package को नहीं बल्कि उसके किसी भी आश्रित को अनइंस्टॉल करता है।
कारेल

12

मेरे लिए निम्न चरणों ने काम किया:

cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so

मूल समाधान यहाँ है: /programming/13708180/python-dev-installation-error-importerror-no-module-onym-apt-pkg/36232975##232975


1
जैसा कि मेरे लिए "मूल समाधान" पर एक टिप्पणी में उल्लेख किया गया है, यह काम किया है sudo ln -s apt_pkg.cpython-{35m,36m}-x86_64-linux-gnu.so:। 35(अजगर 3.5) संस्करण क्या है कि आप चला रहे हैं अजगर 3.x के विशेष उप-संस्करण की परवाह किए बिना स्थापित कर रहा है। धन्यवाद!
19 '20

7
update-alternatives  --set python3  /usr/bin/python3.6

3
अजगर के लिए विकल्प अद्यतन करना कभी-कभी चीजों को तोड़ सकता है।
कुल्फी

1
मैंने इस्तेमाल किया update-alternatives --set python3 /usr/bin/python3.5और यह काम कर गया। python3 पहले से ही python3.6मेरे सिस्टम की ओर इशारा कर रहा था ।
देसी

2

यदि आप 13.10 से 14.04 पर अपग्रेड करने का प्रयास कर रहे हैं, तो इन निर्देशों का पालन करें । यदि आप अपने वर्तमान सिस्टम को कमांड लाइन से अपडेट करने का प्रयास कर रहे हैं, तो एक टर्मिनल खोलें और निम्नलिखित टाइप करें:

sudo apt-get update
sudo apt-get dist-upgrade

धन्यवाद। मैंने पहले ही कोशिश की थी लेकिन यह काम नहीं किया। मैंने एक बार और कोशिश की, अब-अपडेट मिलने के बाद, चेतावनी W: bzip2 लाने में विफल: /var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_duc_saucy-updates_main_source_Source हैश योग मिसमैच
user2925

K - आपको अद्यतन स्रोतों के साथ एक समस्या है। मैंने इस बारे में कई सूत्र देखे हैं कि कैसे ठीक करें कि निम्नलिखित लिंक आपके प्रश्न के लिए एक अच्छा मेल लगता है askubuntu.com/questions/41605/…
चार्ल्स ग्रीन

धन्यवाद! मैंने कोशिश की, लेकिन मुझे अभी भी एक ही त्रुटि update-manager
मिलती है

K - कि एक अधिक व्यापक वेब खोज के साथ मेरी संभावनाओं को समाप्त करता है। सौभाग्य!
चार्ल्स ग्रीन

2

मैं कॉपी करके इस समस्या के समाधान में कामयाब रहे apt_pkg.cpython-34m-i386-linux-gnu.soकरने के लिए /usr/lib/python3/dist-packages/Ubuntu 14.04 LTS चल रहा एक और डेस्कटॉप से। मैंने इंटरनेट पर पाई जाने वाली लगभग सभी संभावनाओं को आज़मा लिया है, जैसे कि पायथन इंस्टॉलेशन को शुद्ध करना और फिर से इंस्टॉल करना, टूटी हुई अपग्रेड फ़ाइलों को साफ़ करना आदि, लेकिन कोई सफलता नहीं मिली।


1

बस अगर यह एक और मदद करता है, तो मैंने अंततः इस समस्या को हल किया, जो कि जाहिरा तौर पर अजगर संस्करण संघर्ष के कारण था, लिंक python3 को पुनर्निर्देशित करके, फिर इसे सही अजगर संस्करण पर पुनर्निर्देशित किया गया:

sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.4

आपको सही पायथन संस्करण में प्रवेश करने की आवश्यकता हो सकती है, जिसके साथ मिला है

python3 -V

तो आपने एक संस्करण निकाल दिया 3.4?
IggyPass

इस की कोशिश की, और यह चीजें बनाने के लिए मिला बदतर । सिफारिश नहीं कर सकते।
MERose

1

बस एक सलाह: मैं / usr / स्थानीय पर "मेरी" अजगर स्थापित करने से बचता हूं, लेकिन मेरे पास एक प्रति संस्करण अजगर संस्करण (जैसे / विकल्प) में है और मैं अपने उपयोगकर्ता खाते पर आभासी वातावरण का उपयोग कर रहा हूं, मुझे अजगर की आवश्यकता है जो मेरे लाभकारी द्वारा सक्रिय होता है

इस दृष्टिकोण से, आप पायथन सिस्टम अपेक्षित कॉन्फ़िगरेशन और निर्भरता को बदलने से हमेशा बचेंगे।

खैर, मुझे पता है, आपके मामले के लिए बहुत देर हो चुकी है, लेकिन ...


1

मेरे लिए समस्या यह थी कि मैंने python3.7 के बगल में python3.7 स्थापित किया और इसे डिफ़ॉल्ट बना दिया।

मैं मैन्युअल रूप से निम्न कमांड चलाता हूं:

ln -s /usr/bin/python3.6  /usr/bin/python3

इसलिए python3 अब अजगर के सही संस्करण की ओर इशारा करता है ... जो इस मुद्दे को हल करता है।


1
मैं इस मुद्दे का भी सामना कर रहा हूं क्योंकि मैंने उबंटू 18 में python3.7 को अपडेट किया था। लेकिन जब मैंने ऐसा किया तो आपने जो किया (प्रतीकात्मक लिंक बनाया), मुझे मिला ln: failed to create symbolic link '/usr/bin/python3': File exists। अगर मैं कर lsमेरी में /usr/bin/python*, मेरे पास है python3, python3.6, python3.6m, python3.7, python3.7mऔर python3m। अगर मैं करता हूं sudo update-alternatives --config python3, मेरे पास है *0 /usr/bin/python3.7 2 auto mode, 1 /usr/bin/python3.6 1 manual modeऔर 2 /usr/bin/python3.7 2 manual mode। धन्यवाद।
user1330974

हो सकता है कि आपको पहले से मौजूद किसी लिंक फ़ाइल को हटाने की आवश्यकता हो या उसका नाम बदलकर .old और अपना स्वयं का लिंक बनाना हो।
एम। हफीनी

@ user1330974 क्या आपने आखिर समस्या हल कर ली? मैं एक ही मुद्दे का सामना कर रहा हूँ
dallonsi

1
@ user1330974 जाहिरा तौर पर, सिर्फ प्रतीकात्मक लिंक पर काम करने के लिए मजबूर किया:ln -sf /usr/bin/python3.6 /usr/bin/python3
dallonsi

1
@dallonsi धन्यवाद। मैंने इसे आगे नहीं देखा, लेकिन मैं आपके दृष्टिकोण का उपयोग करूंगा। :)
user1330974
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.