我正在尝试使用命令添加一个 repo
sudo add-apt-repository ppa:gezakovacs/ppa
Run Code Online (Sandbox Code Playgroud)
以下是完整的错误 -
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
ModuleNotFoundError: No module named 'apt_pkg'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, 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 23, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
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
ModuleNotFoundError: No module named 'apt_pkg'
Run Code Online (Sandbox Code Playgroud)
得到以上错误。
我已经在 Xubuntu 16.04 上安装了 python2 、 Python3.5 和 Python3.6 。它会导致任何问题吗???
这可能是因为您以一种奇怪的方式切换了 python 版本。你有/usr/lib/python3/dist-packages/apt_pkg.so吗?如果您删除了某个版本的 python,这可能会丢失。
对我有用的答案是来自askubuntu 论坛:
ln -s /usr/lib/python3/dist-packages/apt_pkg.cpython-36m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/apt_pkg.so
Run Code Online (Sandbox Code Playgroud)
如果你看/usr/bin/add-apt-repository它说
#!/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)
在顶部。如果您使用较新的 python(例如,dist 有 3.5 但您安装了 3.7)/usr/bin/python3进行了更新,那么您将指向一个没有apt_pkg.
您可以临时编辑/usr/bin/add-apt-repository以指向
#!/usr/bin/python3.5
Run Code Online (Sandbox Code Playgroud)
(插入你的发行版 python 版本)
小智 6
我有一个类似的问题,在做 apt-get upgrade 时......问题是 apt-get 试图使用 python2.7,但符号链接指向 python3.4:
debian:/usr/bin# cat /etc/debian_version
8.10
debian:/usr/bin# ll /usr/bin/python
lrwxrwxrwx 1 root root 18 Feb 26 17:02 /usr/bin/python -> /usr/bin/python3.4
Run Code Online (Sandbox Code Playgroud)
通过创建新的符号链接修复它
debian:/usr/bin# rm /usr/bin/python
debian:/usr/bin# ln -s /usr/bin/python2.7 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18567 次 |
| 最近记录: |