update-managerの問題:Ubuntu 13.10に「apt_pkg」というモジュールはありません。Python3.4が/ usr / local / libにインストールされています


29

私はUbuntuが初めてで、Ubuntu 13.10でupdate-managerを実行しようとしています。私は得る:

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、常に同じエラーが発生します。この方法では、Ubuntu 14.04にアップグレードすることさえできません。

回答:


32

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>依存関係の計算と削除(および削除するパッケージのマーク付け)を回避できるため、パッケージをを使用して1ステップで再インストールすることがほとんど常に推奨されます。パッケージの削除は常に元に戻すことができる手順ではないことに注意してください。たとえば、APTは要求された場合、それ自体またはその依存関係を削除します!--reinstallフラグは、そのためよりもはるかに安全であるremoveが続きますinstallremoveそれだけでコマンドは、パッケージの設定ファイルを削除しませんので、何のメリットがオーバーしていませんinstall --reinstall
ザンナ

パーフェクト!それは私のために働いた!
フランシスロドリゲス

8
今、次のエラーが発生しています:sudo: add-apt-repository: command not found@vikas kapdoskar
alper

1
sudo: add-apt-repository: command not foundubuntu
16:04

4
この答えは、@ Zannaの提案で更新する必要があります。python3-aptを削除すると、大量の依存関係が削除され、システムを台無しにすることは言うまでもなく、誰かからのがらくたが怖がる場合があります。
アルカネン

11

私にとっては、次の手順が機能しました:

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

元のソリューションはこちらです:https : //stackoverflow.com/questions/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg/36232975#36232975


1
「元のソリューション」でのコメントで述べたように、私にとってこれはうまくいきましたsudo ln -s apt_pkg.cpython-{35m,36m}-x86_64-linux-gnu.so35(のpython 3.5)のバージョンに関係なく、あなたが実行していることのpython 3.xの特定のサブバージョンのインストール何です。ありがとう!
fwc

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

3
pythonの代替を更新すると、状況が壊れる場合があります。
-Kulfy

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

ありがとう。私はすでに試してみましたが、うまくいきませんでした。私はapt-getを更新した後、取得、今もう一度試してみました、警告W:bzip2の取得に失敗しました:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_saucy-updates_main_source_Sourcesハッシュサムの不一致を
user291925

K-アップデートソースに問題があります。私は、次のリンクは、あなたの質問のために良い試合であると思われることを解決する方法について、いくつかのスレッドを見てきました askubuntu.com/questions/41605/...
チャールズ・グリーン

ありがとう!試しましたが、実行中に同じエラーが発生しますupdate-manager
user291925 14年

K-それは、より広範なウェブ検索で私の可能性を使い果たしているということです。幸運を!
チャールズグリーン14年

2

Ubuntu 14.04 LTSを実行apt_pkg.cpython-34m-i386-linux-gnu.so/usr/lib/python3/dist-packages/ている別のデスクトップからにコピーすることで、この問題を解決できました。私はpythonのインストールをパージしてから再インストールし、壊れたアップグレードファイルをクリーニングするなど、インターネットで見つかったほとんどすべての可能性を試しましたが、成功しませんでした。


2

別の助けになる場合に備えて、リンクpython3をリダイレクトし、正しいpythonバージョンにリダイレクトすることにより、明らかにpythonバージョンの競合によって引き起こされたこの問題を最終的に解決しました:

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

正しいpythonバージョンを入力する必要があります。

python3 -V

ので、1つのバージョンを削除しました3.4か?
IggyPass

1

アドバイス:「私の」pythonを/ usr / localにインストールするのを避けますが、pythonバージョンごとに1つの専用ディレクトリ(/ optなど)があり、ユーザーアカウントで仮想環境を使用して必要なpythonを使用しています。これは私の.profileによって有効化されます

このアプローチにより、Pythonシステムの予想される構成と依存関係を常に変更することを避けます。

まあ、私は知っています、あなたの場合には遅すぎますが...


1

私にとっての問題は、python3.6の隣にpython3.7をインストールし、それをデフォルトにしたことです。

次のコマンドを手動で実行します。

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

python3は、問題を解決する正しいバージョンのpythonを指すようになりました。


1
Ubuntu 18でpython3.7に更新したため、この問題に直面しています。しかし、あなたがしたこと(シンボリックリンクの作成)を行うと、が得られましたln: failed to create symbolic link '/usr/bin/python3': File exists。私がしなければls、私の中で/usr/bin/python*、私が持っているpython3python3.6python3.6mpython3.7python3.7mpython3m。もしそうならsudo update-alternatives --config python3、私は持っている*0 /usr/bin/python3.7 2 auto mode1 /usr/bin/python3.6 1 manual modeそして2 /usr/bin/python3.7 2 manual mode。ありがとうございました。
user1330974

既存のリンクファイルを削除するか、.oldに名前を変更して独自のリンクを作成する必要がある場合があります。
M.ヘフニー

@ user1330974最終的に問題を解決しましたか?私は同じ問題に直面しています
ダロンシ

1
@ user1330974どうやら、ただシンボリックリンクを強制的に働いていた:ln -sf /usr/bin/python3.6 /usr/bin/python3
dallonsi

1
@dallonsiありがとうございます。私はこれ以上詳しく調べませんでしたが、あなたのアプローチを使用します。:)
user1330974
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.