“导入错误:没有名为 _struct 的模块”配置 python-minimal

Jav*_* Xu 10 dpkg

当我运行时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.
Run Code Online (Sandbox Code Playgroud)

而这个问题在处理以下包时会导致一系列的依赖问题:

 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
Run Code Online (Sandbox Code Playgroud)

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

小智 8

遵循 Soroosh 的解决方案。手动构建和安装 python 2.6 后损坏的 python (2.7)

进入sudo -iroot 访问。

粘贴命令并等待大约 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
Run Code Online (Sandbox Code Playgroud)


Chu*_*k R 1

好的,浏览一下包,我发现 python-minimal 没有 struct.py,但 python-minimal2.7 有。

所以,尝试一下这个,看看它是否对你有帮助:

sudo apt-get install --reinstall python2.7-minimal
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

如果即使这样也不起作用,也许你的 $PYTHONPATH 不知何故搞砸了。

nano ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"然后添加行

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

并再次尝试更新。


Chu*_*k R 0

不知道这是否会对您有所帮助,这有点盲目,但请确保您的默认 Python 版本设置为 2.7。

/usr/bin 中有三个值得关注的文件:

python (symlink)
python2.7
python3 (symlink)
Run Code Online (Sandbox Code Playgroud)

如果这样做,ls -l /usr/bin | grep python您将看到每个符号链接指向的内容。

如果它向您显示python -> python3或者python -> python3.3有什么问题。此时您将需要:

rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

24749 次

最近记录:

7 年 前