2012-07-09 15 views
10

Estoy intentando configurar Python para mis Emacs en Ubuntu, y me sale el siguiente error:/usr/bin/env: python2: No existe el fichero o directorio

/usr/bin/env: python2: No such file or directory 

¿Puede alguien ayudarme con esto? ¿Qué puedo hacer para resolverlo?

+0

Cuando se produce este error? – dwerner

+0

No estoy seguro de por qué esto se cerró como 'fuera del tema' ya que la pregunta es sobre la configuración del entorno de programación Python en Ubuntu y generalmente la primera línea de código Python en un sistema UNIX. Aquí hay una explicación de lo que hace esta línea y cómo configurarla para su sistema: http: //stackoverflow.com/questions/2429511/why-do-people-write-usr-bin-env-python-on-the-first -line-of-a-python-script – Will

Respuesta

6

Probablemente eso sea cierto. El enlace /usr/bin/python2 -> (the real one) debe ser proporcionado por su paquete de Python, pero obviamente no es el caso, ni en ninguna otra ubicación donde se puede encontrar a través del $PATH.

Deberá poner dicho enlace en su ruta en el (un) lugar apropiado.

+0

Pero tengo python en la ruta, cuando escribo "python" en mi línea de comandos, abre la terminal. Entonces, ¿cómo incluyo en el pasado según lo recomendado por usted? – murtaza52

+0

Eso es extraño. Normalmente, 'env' debería verificar la ruta. También depende de en qué circunstancias se produce el error: ¿tiene un '$ PATH' diferente de lo normal? ¿Qué dice 'which python2' en el caparazón? – glglgl

+0

en 'which python2', no consigo nada en el shell. ¿Cómo debería definirlo? – murtaza52

10

probar este comando en el terminal

sudo ln -s /usr/bin/python2.6 /usr/bin/python2

o

sudo apt-get install python2

+0

Deseo seguir la ruta del enlace simbólico como lo hice en el pasado, la máquina recientemente tuvo una reinstalación limpia en El Capitán. Incluso como sudo de la siguiente manera 'sudo ln -us /usr/bin/python2.7/usr/bin/python2' obtengo el siguiente 'ln:/usr/bin/python2: Operación no permitida' –

+0

Problema resuelto. Usar 'ln -sf' se lo permitió para que funcione. Lo había comprobado que ya no estaba vinculado usando 'ls -la | más' por lo que es un poco misterioso por qué '-f' funcionó incluso después de hacer 'man ln' y leer sobre ello. De todos modos problema resuelto. –

+1

FWIW, esto funciona en mi versión de El Capitán: sudo ln -s /usr/bin/python2.7/usr/local/bin/python2 –

1

En Ubuntu 12.04.

para averiguar qué paquete pertenece el archivo:

$ apt-file -F find /usr/bin/python2 
python-minimal: /usr/bin/python2 

Para averiguar qué paquetes dependen del paquete:

$ apt-cache rdepends python-minimal 
python-minimal 
Reverse Depends: 
    python2.7-minimal 
|livecd-rootfs 
    python-minimal:i386 
    python-support 
    python2.7-minimal 
    python 
|livecd-rootfs 

Es mostrar que si tiene python paquete, entonces debería haber python-minimal paquete, entonces debe tener el archivo /usr/bin/python2.

Compruebe si /usr/bin está en $PATH dentro de emacs. Si se trata y no se puede ejecutar desde un shell /usr/bin/python2 entonces se podría reinstalar python-minimal para restaurar /usr/bin/python2 archivo:

$ sudo apt-get --reinstall install python-minimal 
Cuestiones relacionadas