para - install python 2.7 ubuntu 17
ImportError: Ningún módulo llamado bz2 para Python 2.7.2 (9)
Estoy usando Python 2.7.2 en Ubuntu 11.10. Recibí este error al importar el módulo bz2:
ImportError: No module named bz2
Pensé que el módulo bz2 debería venir con Python 2.7. ¿Como puedo solucionar este problema?
EDITAR: Creo que anteriormente instalé Python 2.7.2 compilando desde el origen. Probablemente en ese momento no tenía libbz2-dev y, por lo tanto, el módulo bz2 no está instalado. Ahora, espero instalar Python2.7 a través
sudo apt-get install python2.7
Pero dirá que ya está instalado. ¿Hay alguna manera de desinstalar la instalación anterior de Python2.7 y reinstalarla?
Asegúrate de que bz2 esté instalado, ejecuta sudo yum install bzip2-devel
.
Centos 6
sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /python_install_path/lib/python2.7
Centos 7
sudo cp /usr/lib64/python2.7/lib-dynload/bz2.so /python_install_path/lib/python2.7
python_install_path
generalmente es /usr/local/lib/python2.7/
, necesita reemplazarlo si instala Python en otra ruta.
Bueno, esto es mucho más fácil de entender en forma de respuesta, así que moveré lo que escribiría en mi comentario a esta respuesta.
Afortunadamente para usted, no sobrescribió la versión del sistema de python, ya que Ubuntu 11.10 viene con 2.7.2 preinstalado.
Sus binarios de python ( python
y python2.7
) se encuentran en /usr/local/bin
, que es un directorio donde normalmente se instalan cosas específicas del usuario. Esto está bien, significa que tu sistema python todavía está allí.
Primero, simplemente intente ejecutar el sistema python. Escriba esto desde la línea de comando:
/usr/bin/python -c "import bz2; print bz2.__doc__"
Esto debería imprimir algo como esto:
λ > /usr/bin/python -c "import bz2; print bz2.__doc__"
The python bz2 module provides a comprehensive interface for
the bz2 compression library. It implements a complete file
interface, one shot (de)compression functions, and types for
sequential (de)compression.
Si es así, significa que estás bien.
Entonces solo tienes que arreglar tu PATH
, que le dice al shell dónde encontrar los comandos. /usr/local/bin
va a tener prioridad sobre /usr/local
, por lo que hay algunas formas de corregir esto, en orden de dificultad / molestia / alteración de su sistema:
Elimine el enlace simbólico de python
de /usr/local/bin
Esto hará que cuando tipee python
, debería volver a ejecutar /usr/bin/python
, que es un alias para el sistema python 2.7.2.
sudo rm /usr/local/bin/python
Mueva /usr/bin
para tener una mayor precedencia en la PATH
Puede que no sea deseable si ya tiene elementos en /usr/local/bin
que deberían tener prioridad sobre /usr/bin
, pero estoy agregando esto para que esté completo.
En su perfil de shell (no estoy seguro de cuál es el predeterminado de Ubuntu, pero estoy usando ~/.bash_profile
, puede hacer esto:
export PATH=/usr/bin:$PATH
Elimina tu instalación de Python
Esto es extremo y la primera opción que presenté debería ser tu primera opción.
¿Realmente necesitas tu propia versión de Python? Si quieres entornos Python aislados, probablemente realmente quieras virtualenv
. Probablemente puedas eliminar el tuyo a menos que haya una razón para no hacerlo.
Sin embargo, va a ser un poco molesto, pero básicamente:
- Elimine los
python2.7
python
ypython2.7
ypythonw
ypythonw2.7
de/usr/local/bin
. - Eliminar
/usr/local/lib/python/2.7.2
Esta parte no está completa porque olvido qué más hay.
En el caso, debe usar python2.7, debe ejecutar: (Centos 6.4)
sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /usr/local/lib/python2.7/
La respuesta de matocnhoi funciona para mí en centOS
sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /usr/local/lib/python2.7/
y usé virtualenv, entonces el comando es
sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so ../../../env/lib/python2.7/
Me encuentro con el mismo problema, esta es mi solución.
El motivo del error de importación es que mientras construye Python, el sistema no pudo encontrar los encabezados bz2 y el módulo bz2 de construcción omitido.
Instalarlos en Ubuntu / Debian:
sudo apt-get install libbz2-dev
Fedora:
sudo yum install bzip2-devel
y luego reconstruir python
viene de otra respuesta
La respuesta de @birryree ayuda a regresar al pitón original del sistema.
Para Ubuntu / Debian:
sudo apt-get install libbz2-dev
Para Fedora:
sudo yum install bzip2-devel
Y luego recompila el Python e instálalo.
Quizás ayude a alguien:
apt-get install libbz2-dev # for bz2
apt-get install libssl-dev # for _ssl
apt-get install libsqlite3-dev # for sqlite
apt-get install libreadline6-dev # for readline, _curses, _curses_panel
Si su bz2 en /usr/lib64/python2.7/lib-dynload/ se llama así: "bz2.x86_64-linux-gnu.so", recuerde cambiarle el nombre a bz2.so al copiarlo en su ruta o puede no ser de origen correcto:
cp /usr/lib64/python2.6/lib-dynload/bz2.x86_64-linux-gnu.so /python_install_path/lib/python2.7/bz2.so
Utilicé un enlace simbólico entre /usr/lib64/python2.6/lib-dynload/bz2.so /usr/local/lib/python2.7/lib-dynload/
Funcionó bien para mí ...