"No module named _struct" after manually building and installing python 2.6 [duplicate]
running Ubuntu 12.04, I had the usual python 2.7 in place .
I needed python 2.6 , so I downloaded the source and did
./configure
make
sudo make install
A mistake, as I did not want to replace my system-wide python . Now some programs stopped working , e.g. update-manager with
ImportError: No module named gi.repository
I used update-alternatives to make python 2.7 default again, but many python applications still won't start up because of some missing modules .
Can someone give a hint what happened and what the best way to fix it would be?
Thanks in advance.
Edit :
I could get some functionality of apt-get to work by setting my own hard link from /etc/python to /etc/python2.7 . ( So I guess using update-alternatives really did not do much good eithe. ) I did a dist-upgrade , which basically worked, but a lot of the package managing via apt-get is still broken. In particular, a problem with python-minimal prevents many other installations of packages I wanted to do .
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 <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
PS: Building 2.7 from source always did exit (also before dist-ugprade or update-alternatives) with
make: *** [libinstall] Error 1
Currently, on make , there are more issues (" Python build finished, but the necessary bits to build these modules were not found:
_bsddb bsddb185 bz2
dl imageop sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
")
As this is a little over my head , I guess I am just better off with a fresh install from scratch .
I had a similar problem when I downgraded from debian/Testing to debian/Stable recently. I guess somewhere in the process, python modules got corrupted. Purging and reinstalling python was, as it was pointed out, a bit draconian. Thankfully, I came across the following http://ubuntuforums.org/showthread.php?t=735693
Following this suggestion, I tried the command
for pkg in `dpkg --get-selections | egrep -v 'deinstall' | egrep python | awk '{print $1}'`; do apt-get -y --force-yes install --reinstall $pkg ; done
to reinstall anything that has python in its name, and that solved the problem.
Your python 2.6 install has probably changed lots of settings and paths.
Your best bet is to reinstall the default python interpreter
sudo apt-get --reinstall install python python-support
I can't test it, but I hope that it works. Good luck.
If it doesn't work the only other idea that I have is to install python 2.7 from source, and afterwards trying to reinstall the default one again.