手动构建和安装python 2.6后损坏python(2.7)
运行Ubuntu 12.04,我有通常的python 2.7。
我需要python 2.6,所以我下载了源码并做了
./configure make sudo make install
一个错误,因为我不想替换我的系统范围的python。 现在一些程序停止工作,例如更新管理器
ImportError: No module named gi.repository
我使用update-alternative来使python 2.7再次默认,但是由于一些缺少的模块,许多python应用程序仍然无法启动。
有人可以暗示发生了什么以及解决问题的最佳方法是什么?
提前致谢。
编辑:
我可以通过将自己的硬链接从/ etc / python设置为/etc/python2.7来获得apt-get的一些function。 (所以我猜使用更新替代品确实没有太多好处。)我做了一个dist-upgrade,它基本上有效,但很多通过apt-get管理的软件包仍然被破坏了。 特别是, python-minimal的问题阻止了我想要做的许多其他软件包的安装。
Setting up python-minimal (2.7.3-0ubuntu7) ... 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 import struct File "/usr/local/lib/python2.7/struct.py", line 1, in from _struct import * ImportError: No module named _struct dpkg: error processing python-minimal (--configure): subprocess installed post-installation script returned error exit status 255
PS: 从源代码构建2.7始终执行退出(也在dist-ugprade或update-alternatives之前)
make: *** [libinstall] Error 1
目前,在make上,还有更多问题(“Python构建完成,但找不到构建这些模块的必要位:_bsddb bsddb185 bz2
dl imageop sunaudiodev
要查找必要的位,请在detect_modules()中的setup.py中查找模块的名称。 “)
由于这有点过头了,我想我最好从头开始全新安装。
我最近从debian / Testing降级到debian / Stable时遇到了类似的问题。 我想在这个过程中的某个地方,python模块被破坏了。 正如所指出的那样,清除和重新安装python有点严厉。 谢天谢地,我遇到了以下http://ubuntuforums.org/showthread.php?t=735693
按照这个建议,我尝试了这个命令
for pkg in `dpkg --get-selections | egrep -v 'deinstall' | egrep python | awk '{print $1}'`; do apt-get -y --force-yes install --reinstall $pkg ; done
重新安装其名称中包含python的任何内容,这解决了问题。
你的python 2.6安装可能已经改变了很多设置和路径。
最好的办法是重新安装默认的python解释器
sudo apt-get --reinstall install python python-support
我无法测试它,但我希望它有效。 祝好运。
如果它不起作用我唯一的另一个想法是从源安装python 2.7,然后再尝试重新安装默认的。
我遇到了基本相同的问题,但对于python-minimal 2.7.11-1。
cat /var/lib/dpkg/info/python-minimal.postinst
你应该得到这样的东西:
#! /bin/sh set -e python2.7 -m compileall /usr/share/python/ >/dev/null
运行命令而不重定向到> / dev / null(编辑文件,或: sudo python2.7 -m compileall /usr/share/python/
)。 这将显示安装后配置失败的位置。
例如:
Listing /usr/share/python/penemue/lib/python2.7/site-packages/gevent Compiling /usr/share/python/penemue/lib/python2.7/site-packages/gevent/_socket3.py ... File "/usr/share/python/penemue/lib/python2.7/site-packages/gevent/_socket3.py", line 183 def makefile(self, mode="r", buffering=None, *, ^ SyntaxError: invalid syntax
在我的例子中,它是一个自定义的python包(使用dh-virtualenv构建),它位于/ usr / share / python下。 我必须运行dpkg -P penemue
并最终删除/usr/share/python/penemue
目录。 我可能只是将/usr/share/python/penemue
目录/usr/share/python/penemue
了。
一旦我摆脱了糟糕的代码,运行sudo apt-get install -f
解决了问题。
我的猜测是你不小心覆盖了默认的python目录(不知何故),2.6与更新管理器/应用程序需要的内容不兼容。
尝试sudo apt-get purge python2
然后sudo apt-get install python2
。 这应该从你的系统中清除python并重新安装它,使它再次成为默认的Python。
只有其他的想法是你有一个不好的2.6来源,因此这样做了一个糟糕的安装, 不足以被make ???检测到
- 按内容查找文件 – 基于GUI的简单解决方案
- 亮度控制不起作用 – Ubuntu 12.04 LTS – Macbook pro 5,5
- 如何更正unicode符号u + 2404␄EOT和u + 2405␅ENQ?
- 需要在Windows 7计算机的第二个存储驱动器上安装Ubuntu的建议
- Ubuntu 2D工作正常,但不是VMWare Workstation 9 Windows 7 Host中的Ubuntu虚拟机
- 奇怪的XDG用户目录重置错误
- 从Ubuntu 11.04 32位升级到Ubuntu 12.04 64位后,某些应用程序无法正常工作
- 启动时改变亮度
- 如何在Ubuntu 13.04上运行NetExtender VPN客户端?