python add-apt-repository: ImportError: нет модуля с именем 'apt_pkg'

Когда я пытаюсь:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

в Ubuntu терминал показывает это сообщение об ошибке:

Traceback (most recent call last):
 File "/usr/bin/add-apt-repository", line 11, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 27, in <module>
    import apt_pkg
ImportError: No module named 'apt_pkg'

У меня две версии python, одна - 2.7, другая - 3.5.

Как я могу установить этот пакет на python3.5?


person ding    schedule 22.02.2017    source источник
comment
Зачем вам устанавливать пакет для Python 3.5? Скорее всего, это специальный системный пакет Ubuntu, который поставляется в комплекте с системой Python по умолчанию (это 2.7.x).   -  person Eli Korvigo    schedule 22.02.2017
comment
Собственно вы ничего не устанавливаете, вы только добавляете ppa в систему. Для меня это похоже на ошибку в /usr/bin/add-apt-repository (который является скриптом Python3).   -  person jan groth    schedule 25.02.2018
comment
Отвечает ли это на ваш вопрос? Ошибка установки python-dev: ImportError: нет модуля с именем apt_pkg   -  person Jamie Lindsey    schedule 26.12.2019


Ответы (6)


У меня было что-то совсем другое, чем это. Моя потерпела неудачу с

No module named 'softwareproperties'

Мое решение:

sudo vim /usr/bin/add-apt-repository
Change package header from `python3` to `python3.4` (or lower)

Это может произойти, если вы недавно обновили или добавили другой python3 пакет.

person Yonatan Kiron    schedule 09.08.2017
comment
Мне пришлось отредактировать его до python3.5 в Ubuntu 16.04, и это сработало. Спасибо . - person Or Duan; 10.08.2017
comment
Ручное редактирование заголовков пакетов системных скриптов у меня не работало 16.04 и, в первую очередь, кажется подверженным ошибкам. Мне это кажется ошибкой в ​​/usr/bin/add-apt-repository. В итоге я вручную добавил ppa (и импортировал ключ). - person jan groth; 25.02.2018
comment
@jangroth Полностью согласен, добавьте свое решение в качестве ответа :) - person Yonatan Kiron; 12.03.2018
comment
Просто укажите правильную версию python. Трудно найти, если у вас много установленных - person absentia; 24.05.2019
comment
tks, изменение hashbang на python3.5, но переход на python3.4 работает! - person datdinhquoc; 11.07.2019
comment
если вы достаточно смелы, вы можете запустить sudo rpl -w "python3" "python$(python3 --version | awk '{print $2}')" /usr/bin/add-apt-repository, чтобы заменить заголовок пакета текущей версией Python. - person Mark Kahn; 21.07.2021

убунту 18.04:

sudo vim /usr/bin/add-apt-repository

Измените заголовок пакета с python3 на python3.6

у меня это работает

person Harddownloader    schedule 16.10.2019

Просто вмешиваюсь, поскольку номера версий могли измениться.

Сводка исправления: указываю python3 на python 3.5 вместо 3.6

cd /usr/bin
rm python3
ln -s python3.5 python3

Подробности: у меня была такая же проблема, и я обнаружил, что /usr/bin/add-apt-repository имел подсказку использовать /usr/bin/python3, которая указывает на 3.6. Однако у меня также есть версия 3.5 в моей системе, и мне приходится часто их переключать, поэтому я переключил ее обратно, и теперь add-apt-repository работает.

person Philip    schedule 06.06.2018
comment
У меня работал на WSL Ubunutu 16.04.4. У меня была та же ошибка, что и у OP. - person TurboGus; 19.07.2018
comment
Рад, что это помогло. Учитывая предполагаемую обратную совместимость 3.6 / 3.5, мне странно, что у меня были проблемы, из-за которых Ubuntu не работал должным образом с 3.6. Примечательно, что окна моего терминала не запускались, пока я не переключился обратно на 3.5. В текущем Ubuntu я думаю, что 3.6 теперь стандартная. - person Philip; 31.01.2019

У меня была такая же проблема с Ubuntu 20.04 и python3, указывающими на python3.6.

Мне не нравится редактировать системный файл или что-то подобное (например, / usr / bin / add-apt-repository) и изменять символические ссылки определенных команд (python - особенный). Я предлагаю следовать способу Ubuntu для управления альтернативными версиями той же команды.

У меня был python3, указывающий на python3.6, но установлен и python3.8, поэтому я обновил альтернативы, чтобы они сосуществовали 3.6 и 3.8.

Мое предлагаемое решение - сделать так, чтобы python3 указывал на последнюю установленную версию, которую вы используете, используя альтернативный способ управления Ubuntu.

  1. Установите последнюю доступную версию python3. Мэйб, у тебя это есть, а может, и нет.
sudo apt update && sudo apt upgrade && sudo apt install python3
  1. Проверьте, какая у вас версия python3
python3 --version
  1. Если он указывает на последний (например, 3.8), вы должны решить вашу проблему. Если python3 все еще указывает на более низкую версию (например, 3.6), проверьте, где находится последний ...
which python3.8
  1. Теперь управляю альтернативами Python 3. Проверьте, существуют ли альтернативы python3.
sudo update-alternatives --config python3
  1. Если некоторые из них перечислены, проверьте, установлена ​​ли последняя версия, и если она есть, выберите ее, и вы должны решить свою проблему. В противном случае запомните наивысшее значение приоритета. Ubuntu будет использовать альтернативу с наибольшей ценностью. Завершите ввод, нажав кнопку Enter.

  2. Добавьте последнюю установленную версию в качестве альтернативы. Здесь я использую десятичную часть версии как приоритетную. Команде нужен python3

sudo update-alternatives /usr/bin/python3 python3 /usr/bin/python3.8 8
  1. Если вам нужно, добавьте другие версии python3 ... (более низкий приоритет !!!). Теперь ваш python3 указывает на последнюю версию, доступную в стиле Ubuntu. (и проблема должна быть решена).
person Lorenzo Eccher    schedule 10.02.2021

ИМО, есть более изящное решение, позволяющее обойти модификацию системного файла: sudo apt-get install --reinstall python3-apt.

person hesed    schedule 29.07.2021

Если вы используете UBUNTU, измените версию на python3.8 или установите ее.

sudo apt install python3.8-dev

и после бега

sudo apt-get install software-properties-common
person Ruan Nawe    schedule 29.07.2021