46

Estoy usando brew que instala python (2.7.2) en/usr/local/bin/ Sin embargo, el sistema por defecto de python (2.7.1) se ejecuta en cambio en /usr/bin/, que parece ser porque no obedece a ninguna de las variables de entorno de PATH de bash. Además, no puede encontrar mis módulos, ya que están instalados en /usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages.Sublime Text 2: PATH y PYTHONPATH personalizadas

He estado tratando con la siguiente Python.sublime-settings, pero no funciona:

{ 
"path": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", 
"env": ["PYTHONPATH", "/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages"], 
"cmd": ["python", "-u", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"selector": "source.python" 
} 

¿Cómo puedo hacer Sublime Text cumpla todas las variables de entorno?

+1

Todavía no puede hacer que funcione, ¿encontró una solución mientras tanto? –

+2

[documentos para más detalles sobre los sistemas de compilación] (http://docs.sublimetext.info/en/latest/reference/build_systems.html) – gorlum0

+0

Para la configuración de compilación SublimeText3 revisa esta respuesta: http://stackoverflow.com/questions/23789410/how-to-edit-sublime-text3-build-settings – Moberg

Respuesta

14

lo tengo mediante el establecimiento de mi sistema de caminos de ancho de la siguiente manera:

## PATH 
export PATH=/usr/local/bin:/usr/local/share/python:$PATH 

## PYTHON 
export PYTHONPATH=/usr/local/lib/python:$PYTHONPATH 

# make systemwide 
launchctl setenv PATH $PATH 
launchctl setenv PYTHONPATH $PYTHONPATH 

Editar: Maldición, esto no funciona para Python, sólo para PYTHONPATH, cuando lo intento, todavía da el pitón equivocado. Código utilizado para comprobar pitón ubicación binaria:

import sys, os 
print os.path.dirname(sys.executable) 

Edit2: fijo Esta mediante un enlace duro a la derecha binaria pitón en Python.sublime-build:

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

Datos 3:

Depuración PYTHONPATH Los problemas variables se pueden facilitar imprimiendo también os.environ en la parte superior de la secuencia de comandos. Sublime Text 2 nombres de variables aparentemente NO funcionan para 'env'.

+1

Agregué el PYTHON ahora en .bash_profile, incluidos los comandos launchctl y en el archivo Environment.plist, pero STILL tanto TM2 como ST2 no pueden encontrar mi PYTHONPATH. Quiero arrancarme los pelos ... :( –

+1

Edit2 funciona, también puedes poner el PYTHONPATH en un diccionario "env", como en la respuesta de Bo, es deciragregue una coma y una nueva línea que lea '" env ": {" PYTHONPATH ":"/whatever/your/pythonpath/is "}' antes del último '}' – Markus

+0

Intentó todo esto, aún obteniendo el nombre 'NameError: name 'python 'no está definido' – zakdances

62

env tiene que ser un objeto JSON, o diccionario si se quiere, como esto:

"env": 
{ 
    "PYTHONPATH":"/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages" 
}, 
+1

Gracias, esto me ayudó a entender el formato. Pude arreglar mi error JAVA_HOME con esto así: "env": {"JAVA_HOME": "$ (/ usr/libexec/java_home)"} –

+5

Esta respuesta debe aceptarse –

9

este momento para volcar una entrada antigua, pero si la gente de la tierra en esta página en busca de una manera de hacer uso sublime2 un $ PATH personalizado para plugins (por ejemplo, un plugin cáscara) utilizan sus sistemas actuales $ PATH esto funcionó para mí:

Crear un archivo (plug-in):

~/Library/Application Support/Sublime Text 2/Packages/User/Any_ol_name.py 

a continuación, pega este código en:

import os 

# Tweak line below as needed for your $PATH 
LOCAL = '/usr/local/bin:/usr/local/sbin' 

# Sublime's default path is 
# /usr/bin:/bin:/usr/sbin:/sbin 
# it'll be prepended to your custom one 
os.environ['PATH'] += ':' 
os.environ['PATH'] += LOCAL 

print 'PATH = ' + os.environ['PATH'] 

Post with the original code here..

Este plugin se carga cuando se inicia Sublime Texto 2, yo personalmente lo utilizaron para ejecutar comandos shell como lo haría desde la terminal y fijar unos plugins que interrumpía carga debido al mal variable de ruta .

+0

Esto imprime la RUTA correcta en la consola de Sublime, pero aún no puede encontrar ningún comando como 'python' o' coffee'. Todavía se obtienen errores como 'NameError: name 'python' no está definido' – zakdances

+0

La última línea debe tener paréntesis alrededor del valor de la cadena, o puede obtener un error de sintaxis: print ('PATH =' + os.environ ['PATH']) –

+0

@ NeilMonroe - Tuve un problema similar, pero creo que es porque estaba usando sublimetext 3, que usa python 3, donde print es una función, y por lo tanto necesita los parens. –

Cuestiones relacionadas