¿Cómo configuro Python3.3 y Sublime Text 2 correctamente en OS X 10.8.2?

Estoy tratando de configurar Sublime Text 2 para que el comando de compilación ejecute correctamente los scripts de Python3/Python3.3.

Instalé Python 3.3 a través del instalador obtenido de python.org e instalé Sublime Text 2 a través del instalador de Sublime Text 2.

Después de esto, agregué una entrada de compilación personalizada llamada:

Python3.sublime-build 

en la carpeta Python de Sublime Text 2 con los siguientes contenidos:

{
    "cmd": ["python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Recibo el siguiente error al intentar ejecutar el script:

[Errno 2] No such file or directory
[cmd:  [u'python3', u'-u', u'/Users/user/Library/Application Support/Sublime Text 2/Packages/Python/Python3.sublime-build']]
[dir:  /Users/user/Library/Application Support/Sublime Text 2/Packages/Python]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
[Finished]

He leído en alguna parte que el enlace simbólico python3podría /usr/binsolucionar el problema, pero después de crear el enlace simbólico a /usr/bintravés de Finder, Sublime Text aún no puede compilarse porque recibe un error de permisos.

¿Cuál es la mejor manera de configurar Sublime Text 2 para permitir la ejecución de scripts de Python3?

[editar]

Si coloco la RUTA para el enlace sim python3 generado por la instalación, Sublime Text 2 puede construir el script,

    {
        "cmd": ["usr/local/bin/python3", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python"
    }

Pero cuando intenté agregar la RUTA a ~/.MacOSX/environment.plist como se recomienda sin la RUTA definida, aparece el error. ¿Alguien podría señalar por qué esto no funciona?

¿Te refieres a construir Python 3, que normalmente significa obtener las fuentes y construir el ejecutable de Python? Creo que te refieres a usar Python 3, es decir, ejecutar un script .py a través de un ejecutable python3
Sí, me refiero a ejecutar el comando de compilación para un script de python en SublimeText2 sin compilar Python; se editará para aclarar.
Gracias por editar en los bloques de código, la primera pregunta que hice, tendré que recordarlos la próxima vez.

Respuestas (4)

Agregue "path": "/Library/Frameworks/Python.framework/Versions/3.3/bin/"a su archivo de compilación de Python3. El mío se ve así:

{
    "cmd": ["python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding": "utf8",
    "path": "/Library/Frameworks/Python.framework/Versions/3.3/bin/"
}

Nota: asegúrese de que la ruta a Python3 sea relativa a su máquina; eso fue cierto para la mía

Estoy haciendo lo mismo con la línea "cmd": ["usr/local/bin/python3", "-u", "$file"], realmente buscando una solución para que OSX haga el trabajo por mí.
@markfknight intente usar $(which python)en el archivo de compilación.

Di la ruta completa a python3 para que esto funcione:

{
  "cmd" : ["/usr/local/bin/python3", "-u", "$file"],
}
Este fue el truco para el mío.

El problema es el OSX normal de que las aplicaciones GUI no leen sus perfiles de shell, etc., por lo que solo tienen la ruta heredada del espacio de trabajo.

La forma de solucionar esto es agregar la ruta en ~/.MacOSX/environment.plist

Eso es agregar un par de cadenas clave para PATH, por ejemplo

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

  <key>PATH</key>
  <string>/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/libexec/binutils:</string>
</dict>
</plist>

Deberá cerrar sesión e iniciar sesión o posiblemente reiniciar para que esto funcione.

Creé la carpeta y el archivo antes de agregar el par de cadenas clave, lamentablemente sigo recibiendo el error. ¿Necesito agregar la ruta de Pyhton3 al binario también?
¿Qué muestra ahora la salida de la ruta en SublimeText?
la salida de la ruta sigue mostrando [ruta: /usr/bin:/bin:/usr/sbin:/sbin]
He agregado <Key>PATH<Key> y la siguiente <String>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:<String> a ~/.MacOSX/environment. plist, apagué y encendí, todavía recibo este mensaje. Si me vinculo directamente a /usr/local/bin/python3 en el archivo Python3.sublime-build, se compila sin problemas. ¿Puedes ayudar más?
Agregar a la construcción Sublime probablemente sea lo mejor

El stackoverflow del sitio hermano tiene pocas entradas con explicaciones sobre el problema de establecer variables de entorno PATH para aplicaciones basadas en GUI. Algunos afirman que environment.plist funciona y otros afirman que no y recomiendan usar launch.conf.

Mac OS X Lion ya no reconoce environment.plist , Variables de entorno en Mac OS X y Establecer variables de entorno en Mac OS X Lion . Además , esta respuesta tiene más detalles sobre el formato launch.conf.

Probé ambos durante mis búsquedas sin suerte.