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


10

当我运行时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

最后,对于这个问题,我无能为力。几天后,根目录已满,由于这个问题,我什至无法卸载任何软件。



@Braiam,我之前已经找到了这个问题。建议答案以重新安装python。我尝试过,但失败了。不管怎么说,还是要谢谢你!
Java徐

sudo apt-get clean有助于
腾出

我将/usr/bin/python符号链接更改为指向python3.5,这引起了与此非常类似的错误。不知道为什么,可能与python2.7在没有警告的情况下更改符号链接时已经损坏的部门有关。IDK,将其留在此处以供将来的旅行者使用
quietContest

Answers:



1

OK,遍历这些软件包,我发现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

并再次尝试更新。


编辑添加“出口”,这是必要的;)
Chuck R

它说“无法找到软件包python-minimal2.7”。您是说python2.7-minimal吗?当我尝试重新安装python2.7-minimal时,会出现相同的依赖关系问题。
Java Xu

嗯,对不起,我花了这么长时间回复您。尝试sudo apt-get clean sudo apt-get update sudo apt-get upgrade
Chuck R

1
恐怕它不起作用。在和之后clean,我尝试重新安装,但是出现了相同的依存关系问题,并且再次失败。updateupgradepython2.7-minimalreinstall
Java Xu

好像我错了哪个包。实际上是libpython2.7-minimal包含struct.py。确保已安装。您已安装的python2.7-minimal的当前版本是什么?提示:dpkg -l | grep python2.7-minimal
Chuck R

1

尝试这个

sudo apt purge libpython*

我删除了python2.7和3.7,然后从系统中删除了相关文件。之后,我发现我无法重新安装python2.7。尝试了许多仍然无法使用的方法,包括:

删除软链接

虚拟环境

自动删除

sudo dpkg --purge `dpkg --get-selections | grep deinstall | cut -f1`

然后我通过搜索python整个系统找到了一些libpython文件。(如果不确定,请不要从dir rm文件。)删除libpython*软件包后(我一一删除了它们),python安装成功。

希望这可以帮助一些人遇到同样的问题


0

不知道这是否能帮到您,它在黑暗中有点刺痛,但请确保将默认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

感谢您的回复。在我中/usr/binpython是软链接python2.7
Java Xu

为什么是这样?我将我的符号链接更改为,指向python3.5,这也使大量python程序包感到厌烦apt。为什么我不能默认使用Python3?正确的方法是什么?
quietContest
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.