当我运行时sudo apt-get upgrade
,出现 dpkg 错误并中断该过程。
错误详情:
Setting up python-minimal (2.7.3-0ubuntu7.1) ...
Traceback (most recent call last):
File "/usr/local/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/local/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/lib/python2.7/compileall.py", line 16, in <module>
import struct
File "/usr/local/lib/python2.7/struct.py", line 1, in <module>
from _struct import *
ImportError: No module named _struct
dpkg: error processing python-minimal (--configure):
subprocess installed post-installation script returned error exit status 255
dpkg: dependency problems prevent configuration of python:
python depends on python-minimal (= 2.7.3-0ubuntu7.1); however:
Package python-minimal is not configured yet.
并且这个问题导致在处理以下包时出现一系列的依赖问题:
python
gwibber-service
libgwibber3
libgwibber-gtk3
gwibber
gwibber-service-facebook
gwibber-service-identica
gwibber-service-twitter
python-all
python-dev
python-all-dev
python-apt
python-problem-report
python-apport
python-libxml2
unity-lens-gwibber
unity-scope-video-remote
最后,我无能为力。几天后,根目录已满,我甚至无法卸载任何软件,因为这个问题。
答案1
按照 Soroosh 的解决方案。手动构建和安装 Python 2.6 后 Python(2.7)崩溃
输入sudo -i
以获得 root 访问权限。
粘贴命令并等待大约 20 分钟。运行完美。
for pkg in $(dpkg --get-selections | egrep -v 'deinstall' | egrep python | awk '{print $1}'); do apt-get -y --force-yes install --reinstall $pkg ; done
答案2
好的,检查软件包后,我发现 python-minimal 没有 struct.py,但是 python-minimal2.7 有。
因此,尝试一下这个,看看它是否能帮助你:
sudo apt-get install --reinstall python2.7-minimal
sudo apt-get upgrade
如果这样也不起作用,那么可能是你的 $PYTHONPATH 出了问题。
nano ~/.bashrc
export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"
然后添加行
source ~/.bashrc
然后再次尝试更新。
答案3
尝试这个
sudo apt purge libpython*
我删除了python2.7和3.7,然后从系统中删除了相关文件。之后我发现我无法重新安装python2.7。尝试了很多方法仍然不起作用,包括:
删除软链接
del 虚拟环境目录
自动移除
sudo dpkg --purge `dpkg --get-selections | grep deinstall | cut -f1`
然后我通过搜索整个python系统找到了一些libpython文件。(如果不确定,请不要从目录中rm文件。)删除libpython*
软件包后(我一个接一个地删除它们),python安装成功。
希望这可以帮助一些有同样问题的人
答案4
不知道这是否会对你有帮助,这有点像瞎猜,但请确保你的默认 Python 版本设置为 2.7。
/usr/bin 中有三个值得关注的文件:
python (symlink)
python2.7
python3 (symlink)
如果你这样做,ls -l /usr/bin | grep python
你会看到每个符号链接指向什么。
如果它显示python -> python3
或python -> python3.3
出现错误。此时您将需要:
rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python