Güncelleme yöneticisi ile ilgili sorun: Ubuntu 13.10'da 'apt_pkg' adlı hiçbir modül, / usr / local / lib üzerine Python 3.4 yükledi


31

Ubuntu için yeniyim ve Ubuntu 13.10'da güncelleme yöneticisi çalıştırmaya çalışıyorum. Alırım:

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'

Anladığım kadarıyla, bu python3.4 yüklü olması ile ilgili bir sorundur. Onu kurdum /usr/local/lib, ama hep aynı hatayı alıyorum. Bu şekilde Ubuntu 14.04 sürümüne bile geçemiyorum.

Yanıtlar:


34

Şunu apt_pkgkullanarak yeniden yükleyin :

sudo apt-get install --reinstall python3-apt

Hata öncelikle kitaplığın apt_pkg.cpython-35m-x86_64-linux-gnu.sobulunmamasından kaynaklanır /usr/lib/python3/dist-packages.

Kaldırma ve yeniden yükleme yardımcı olacaktır.


15
Paketi kullanarak bir adımda yeniden yüklemek neredeyse her zaman tercih edilir sudo apt install --reinstall <package-name>, çünkü bu bağımlılıkları hesaplamayı ve kaldırmayı (ve paketleri kaldırmak için işaretlemeyi) önler. Paketleri kaldırarak olduğunu unutmayın değil her zaman geri dönüşümlü prosedür; örneğin APT istenirse kendisini veya bağımlılıklarını kaldıracaktır! Bu --reinstallnedenle bayrak, removetakip ettiğinden çok daha güvenlidir install. removeTek başına komut yüzden üzerinde hiçbir yararı vardır bir paketin yapılandırma dosyaları kaldırmaz install --reinstall.
Zanna

4
Bu yanıt @Zanna'nın önerisiyle güncellenmelidir, python3-apt kaldırıldığında bir ton bağımlılık ortadan kaldırılır ve sistemlerini karıştırmaktan bahsetmeden boktan birini korkutabilir.
alkanen

Bu yüzden apt-paketini kaldırın, sudo dpkg -r --force-depends apt-packagebunun yerine sadece apt-paketini kaldırır, ancak bağımlılıklarını kaldırmaz.
karel

12

benim için aşağıdaki adımlar işe yaradı:

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

orijinal çözüm burada: /programming/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg/36232975#36232975


1
Benim için de üzerinde bir yorum "orijinal solüsyon," belirtildiği gibi bu çalıştı: sudo ln -s apt_pkg.cpython-{35m,36m}-x86_64-linux-gnu.so. 35(Piton 3.5) sürümü bakılmaksızın yayınladığınız python'un 3.x özellikle alt versiyonunun yüklü budur. Teşekkürler!
fwc

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

3
Python için alternatifleri güncellemek bazen işleri bozabilir.
Kulfy

1
Kullandım update-alternatives --set python3 /usr/bin/python3.5ve işe yaradı. python3 zaten python3.6sistemime işaret ediyordu .
Desik

Benim için tam olarak bu işe yaradı. Ubuntu 18.04'te Python 3'ü nasıl güncelleyeceğime dair bir rehber izledim ve apt-get artık çalışmıyor. Bunun olacağı hakkında hiçbir fikrim yok.
anon58192932

2

13.10'dan 14.04'e yükseltmeye çalışıyorsanız, bu talimatları uygulamayı deneyin . Mevcut sisteminizi komut satırından güncellemeye çalışıyorsanız, bir terminal açın ve aşağıdakileri yazın:

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

Teşekkürler. Zaten denemiştim ama işe yaramadı. Şimdi bir kez daha denedim, apt-get güncellemesinden sonra, W uyarısı bzip2 getirilemedi:
/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_saucy-updates_main_source_Sources

K - güncelleme kaynaklarıyla ilgili bir sorununuz var. Bunu düzeltmek için birkaç konu gördüm Aşağıdaki bağlantı sorunuz için iyi bir eşleşme gibi görünüyor askubuntu.com/questions/41605/…
Charles Green

Teşekkürler! Denedim, ama yine de çalışırken aynı hatayı alıyorumupdate-manager
user291925 09:14

K - Bu daha kapsamlı bir web araması ile olasılıklarımı tüketir. İyi şanslar!
Charles Green

2

Ben kopyalayarak çözmek başarmış apt_pkg.cpython-34m-i386-linux-gnu.soiçin /usr/lib/python3/dist-packages/Ubuntu 14.04 LTS çalışan başka masaüstünden. Ben internet üzerinden bulunan hemen hemen tüm olasılıkları denedim, python kurulum temizleniyor ve sonra yeniden yükleme, kırık yükseltme dosyaları vb temizlik, ama hiçbir başarı ile sona erdi.


1

Başka bir yardımcı olması durumunda, sonunda python sürüm çakışmalarının neden olduğu, python3 bağlantısını yeniden yönlendirerek ve ardından doğru python sürümüne yönlendirerek bu sorunu çözdüm:

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

Bulunan doğru python sürümünü girmeniz gerekebilir.

python3 -V

Yani bir sürümünü kaldırdınız 3.4mı?
IggyPass

Bunu denedim ve işleri daha da kötüleştirdi . Tavsiye edemez.
MERose

1

Sadece bir tavsiye: "us" python'unu / usr / local üzerine yüklemekten kaçınırım, ancak python sürümü için ayrı bir dizine sahibim (örneğin / opt) ve ihtiyacım olan python'u kullanmak için kullanıcı hesabımda sanal ortamlar kullanıyorum, bu benim .profile tarafından etkinleştirilir

Bu yaklaşımla, her zaman python sistemi beklenen yapılandırmasını ve bağımlılıklarını değiştirmekten kaçınacaksınız.

Biliyorum, davanız için çok geç, ama ...


1

Benim için sorun python3.7 yanındaki python3.7 yüklü ve varsayılan yapmak oldu.

Aşağıdaki komutu el ile çalıştırıyorum:

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

python3 şimdi sorunu çözen doğru python sürümünü gösteriyor.


1
Ben de sorunla karşılaşıyorum çünkü Ubuntu 18'de python3.7 sürümüne güncelledim ln: failed to create symbolic link '/usr/bin/python3': File exists. Ben yaparsanız lsbenim, /usr/bin/python*ben var python3, python3.6, python3.6m, python3.7, python3.7mve python3m. Ben yaparsanız sudo update-alternatives --config python3, ben *0 /usr/bin/python3.7 2 auto mode, 1 /usr/bin/python3.6 1 manual modeve 2 /usr/bin/python3.7 2 manual mode. Teşekkür ederim.
user1330974

zaten var olan bir bağlantı dosyasını silmeniz veya .old olarak yeniden adlandırmanız ve kendi bağlantınızı oluşturmanız gerekebilir.
M.Hefny

@ user1330974 Sonunda sorunu çözdün mü? Aynı sorunla karşı karşıyayım
dallonsi

1
@ user1330974 görünüşte, sadece sembolik bağlantı zorladı çalıştı:ln -sf /usr/bin/python3.6 /usr/bin/python3
dallonsi

1
@dallonsi Teşekkür ederim. Daha fazla bakmadım, ama yaklaşımınızı kullanacağım. :)
user1330974
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.