
Al ejecutar Ubuntu 12.04, tenía instalado el Python 2.7 habitual.
Necesitaba Python 2.6, así que descargué la fuente y lo hice.
./configure
make
sudo make install
Un error, ya que no quería reemplazar mi Python en todo el sistema. Ahora algunos programas dejaron de funcionar, por ejemplo, el administrador de actualizaciones con
ImportError: No module named gi.repository
Utilicé alternativas de actualización para hacer que Python 2.7 volviera a ser el predeterminado, pero muchas aplicaciones de Python aún no se inician debido a que faltan algunos módulos.
¿Alguien puede darnos una pista de lo que pasó y cuál sería la mejor manera de solucionarlo?
Gracias de antemano.
Editar :
Podría obtener algunas funciones de apt-get para trabajar configurando mi propio enlace físico desde /etc/python a /etc/python2.7. (Así que supongo que usar alternativas de actualización tampoco sirvió de mucho). Hice un dist-upgrade, que básicamente funcionó, pero gran parte del paquete que se administra a través de apt-get todavía está roto. En particular, unproblema con python mínimoimpide muchas otras instalaciones de paquetes que quería hacer.
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
PD: Construyendo 2.7 desde la fuentesiempre salía (también antes de dist-ugprade o update-alternatives) con
make: *** [libinstall] Error 1
Actualmente, en make, hay más problemas ("La compilación de Python finalizó, pero no se encontraron los bits necesarios para construir estos módulos: _bsddb bsddb185 bz2
dl imageop sunaudiodev
Para encontrar los bits necesarios, busque en setup.py en detect_modules() el nombre del módulo ").
Como esto se me escapa un poco, supongo que estoy mejor con una instalación nueva desde cero.
Respuesta1
Tuve un problema similar cuando bajé de Debian/Testing a Debian/Stable recientemente. Supongo que en algún momento del proceso, los módulos de Python se corrompieron. Purgar y reinstalar Python fue, como se señaló, un poco draconiano. Afortunadamente, me encontré con lo siguiente http://ubuntuforums.org/showthread.php?t=735693
Siguiendo esta sugerencia, probé el comando
for pkg in `dpkg --get-selections | egrep -v 'deinstall' | egrep python | awk '{print $1}'`; do apt-get -y --force-yes install --reinstall $pkg ; done
reinstalar todo lo que tenga python en su nombre, y eso resolvió el problema.
Respuesta2
Su instalación de Python 2.6 probablemente haya cambiado muchas configuraciones y rutas.
Su mejor opción es reinstalar el intérprete de Python predeterminado.
sudo apt-get --reinstall install python python-support
No puedo probarlo, pero espero que funcione. Buena suerte.
Si no funciona, la única otra idea que tengo es instalar Python 2.7 desde la fuente y luego intentar reinstalar el predeterminado nuevamente.
Respuesta3
Me encontré esencialmente con el mismo problema, pero para Python-minimal 2.7.11-1.
cat /var/lib/dpkg/info/python-minimal.postinst
Deberías obtener algo como esto:
#! /bin/sh
set -e
python2.7 -m compileall /usr/share/python/ >/dev/null
Ejecute el comando sin redirigir a >/dev/null (edite el archivo o:) sudo python2.7 -m compileall /usr/share/python/
. Esto le mostrará dónde falla la configuración posterior a la instalación.
Ex:
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
En mi caso, era un paquete de Python personalizado (creado usando dh-virtualenv) que vivía en /usr/share/python. Tuve que ejecutar dpkg -P penemue
y finalmente eliminar el /usr/share/python/penemue
directorio. Podría haber podido simplemente quitar el /usr/share/python/penemue
directorio del camino.
Una vez que me deshice del código incorrecto, ejecutar sudo apt-get install -f
resolvió los problemas.
Respuesta4
Supongo que accidentalmente sobrescribiste el directorio predeterminado de Python (de alguna manera) y 2.6 es incompatible con lo que necesitan el administrador de actualizaciones/aplicaciones.
Inténtalo sudo apt-get purge python2
entonces sudo apt-get install python2
. Esto debería eliminar Python de su sistema y reinstalarlo, convirtiéndolo nuevamente en el Python predeterminado.
La única otra idea es que obtuviste una mala fuente para 2.6 y, como tal, realizó una mala instalación que no estuvo mal.suficientepara ser detectado por marca???