配置 python-minimal 时出现“ImportError:没有名为 _struct 的模块”

配置 python-minimal 时出现“ImportError:没有名为 _struct 的模块”

当我运行时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 -> python3python -> python3.3出现错误。此时您将需要:

rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python

相关内容