No se encontró el archivo de Python y Ubuntu

He estado ejecutando varias versiones de Python en mi Ubuntu 10.10 por un tiempo, pero estaba teniendo algunos problemas con python2.5 (para el motor de aplicaciones de Google) Así que eché a perder la instalación 2.5 (y eliminé el directorio de paquetes del sitio junto con el Python2.5 directorio) y reinstalado ... obtuve el mismo error, un archivo no encontrado que estaba allí ... así que pensé que intentaba instalar Virtual env y trabajar con eso. bueno ahora parece que todas mis pitones están regadas ..

No puedo ejecutar un archivo py desde la línea de comando, por ejemplo. "python python.py" y este es el caso de todas las versiones que tengo ... así que me pregunto si hay alguna configuración global que haya sido eliminada. no tengo ni idea de dónde buscar ... El siguiente ejemplo muestra que el archivo virtualenv se puede importar pero no se puede ejecutar normalmente, solo obtiene un no encontrado ... Cambié los permisos para ejecutar en el archivo virtualenv.py pero eso no hizo ninguna diferencia. Tengo virtualenv instalado en varias versiones de Python, 2.6, 2.7 (además de 2.5) y obtengo el mismo comportamiento en todas, así que sospecho que Bash o algo en Ubuntu, no python no virtual env ..

enter code here
tom@tom-Satellite-A105:~$ python2.5 virtualenv.py env
python2.5: can't open file 'virtualenv.py': [Errno 2] No such file or directory
tom@tom-Satellite-A105:~$ python2.5
Python 2.5.6 (r256:88840, Aug  6 2011, 08:40:44) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import virtualenv
>>> exit()

^^^^^^ muestra que Python2.5 puede importar virtualenv fine Mientras tanto, iniciando mi máquina alternativa :-(

preguntado el 27 de agosto de 11 a las 18:08

2 Respuestas

Cuando lo importa, pasa por la ruta de Python para encontrarlo, pero cuando ingresa:

python2.5 virtualenv.py

eso asume que está en el directorio actual.

Respondido 27 ago 11, 22:08

bueno, eso ayuda, pero, según recuerdo, virtualenv normalmente es bastante fácil de usar ... y bajar a la ubicación de instalación no lo es y además no puede escribir el archivo env resultante ... por supuesto que podría ir a sudo, pero eso algo más derrota la idea .. ¿Así que claramente he estropeado algo con la instalación o las rutas ??? Resultado: OSError: [Errno 13] Permiso denegado: 'env1' - perro dardo

Un buen punto de partida para rastrear tales WTF es ejecutar el proceso bajo strace que informará (copiosamente) las llamadas al sistema realizadas y los resultados de cada una ... luego puede ver si realmente es el archivo que no se puede encontrar, o algún otro problema

$ trace python NOFILE.py
execve("/usr/bin/python", ["python", "NOFILE.py"], [/* 63 vars */]) = 0
brk(0)                                  = 0x9bef000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb78de000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=160388, ...}) = 0
mmap2(NULL, 160388, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb78b6000
close(3)                                = 0
  ...[snip]...
stat64("NOFILE.py", 0xbfbc53bc)         = -1 ENOENT (No such file or directory)
stat64("NOFILE.py", 0xbfbc53cc)         = -1 ENOENT (No such file or directory)
open("NOFILE.py", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
write(2, "/usr/bin/python2.6: can't open f"..., 85/usr/bin/python2.6: can't open file 'NOFILE.py': [Errno 2] No such file or directory) = 85
exit_group(2)                           = ?

Por ejemplo, strace invocando Python con su secuencia de comandos, una secuencia de comandos que SÍ se abre y un archivo inexistente, y luego diferencie los rastros ... supongo que encontrará que el error está en otra parte, pero que el error se informa incorrectamente

Si virtualenv.py no está en la carpeta local, puede intentar configurar explícitamente PYTHONPATH para ver si eso lo soluciona (ver "python -h") y, si es así, eche un vistazo a lo que está modificando sys.path en una configuración donde funciona (por ejemplo, ejecutar strace de nuevo)

Respondido 28 ago 11, 13:08

Esto será de gran ayuda. (archivo para uso futuro). Como resultado, el problema principal que tenía era que estaba usando una configuración de Pythonpath frente a una ruta del sistema ... no estoy exactamente seguro de cómo interpretar ese problema y cómo generalizar cuál necesito, cuándo, en este caso, necesitaba coloque el SDK del motor de aplicaciones de Google en la ruta del sistema (no en la ruta de python), sin embargo, solucionó mi problema específico .. - perro dardo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.