web-dev-qa-db-fra.com

Sublime Text 2: PATH et PYTHONPATH personnalisés

J'utilise brew qui installe python (2.7.2) dans/usr/local/bin/Cependant, le système par défaut python (2.7.1) est exécuté à la place à /usr/bin/, ce qui semble être le cas car il n'obéit à aucune des variables d'environnement bash PATH. De plus, il ne trouve pas mes modules, car ils sont installés dans /usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages.

J'ai essayé ce qui suit avec Python.sublime-settings, mais cela ne fonctionne pas:

{
"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"
}

Comment faire pour que Sublime Text obéisse à ces variables d'environnement?

47
FLX

env doit être un objet JSON, ou un dictionnaire si vous voulez, comme ceci:

"env":
{
    "PYTHONPATH":"/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages"
},
62
Bo Fjord Jensen

Je l'ai obtenu en définissant mon système de chemins à l'échelle en procédant comme suit:

## 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

Edit: Merde, cela ne fonctionne pas pour python, juste pour PYTHONPATH, quand je l'essaye, cela donne toujours le mauvais python. Code utilisé pour vérifier python emplacement binaire:

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

Edit2: Correction de cela en hardlink à droite python binaire dans Python.sublime-build:

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

Modifier 3:

Le débogage des problèmes de variables PYTHONPATH peut être facilité en imprimant également os.environ en haut de votre script. Les noms de variables Sublime Text 2 ne fonctionnent apparemment PAS pour 'env'.

14
FLX

Désolé de heurter un ancien post, mais si les gens atterrissent sur cette page à la recherche d'un moyen de faire sublimer2 utiliser un $ PATH personnalisé, les plugins (par exemple un plugin Shell) utilisent vos systèmes actuels $ PATH, cela a fonctionné pour moi:

Créez un fichier (plugin):

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

Collez ensuite ce code dans:

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']

Poster avec le code d'origine ici ..

Ce plugin se chargera lorsque vous lancerez Sublime Text 2, je l'ai personnellement utilisé pour exécuter des commandes Shell comme je le ferais depuis un terminal et pour corriger quelques plugins qui ne se chargeaient pas en raison d'une variable de chemin d'accès incorrecte.

9
Ultriix