47 votes

Sublime Text 2: Custom PATH et PYTHONPATH

Je suis à l'aide d'infusion qui installe python (2.7.2) dans /usr/local/bin/ Cependant, le système par défaut de python (2.7.1) est exécutée à la place de /usr/bin/, qui semble être car il ne respecte pas l'une quelconque des bash variables d'environnement PATH. Aussi, il ne peut pas trouver mes modules, qu'ils soient installés dans /usr/local/lib/python:/usr/local/Cave/python/2.7.2/lib/python2.7/site-packages.

J'ai essayé le suivant avec Python.sublime-settings, mais ça 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 puis-je faire de Sublime Text obéir à ces variables d'environnement? Merci!

62voto

Bo Fjord Jensen Points 524

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

14voto

FLX Points 1167

Je l'ai eu en fixant mes chemins à l'échelle du système 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 le PYTHONPATH, quand je l'ai essayer, il donne toujours le mauvais python. Code utilisé pour vérifier python binaire emplacement:

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

Edit2: Fixée par hardlinking à droite python binaire en Python.sublime-build:

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

Edit 3:

Débogage de la variable PYTHONPATH questions peut être rendue plus facile par la également imprimer os.environ en haut de votre script. Sublime Text 2, les noms de variables, apparemment, ne fonctionne PAS pour les "env".

9voto

Ultriix Points 49

Désolé de remonter un vieux post, mais si les gens des terres sur cette page, vous cherchez un moyen de faire sublime2 utiliser un custom $CHEMIN afin de plugins (e.g un shell plugin) l'utilisation de vos systèmes actuels $PATH cela a fonctionné pour moi:

Créer un fichier (plugin):

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

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

Post d'origine avec le code ici..

Ce plugin se charge lorsque vous démarrez Sublime Text 2, j'ai personnellement utilisé pour exécuter des commandes shell comme je le ferais à partir de la borne et de fixer quelques plugins qui ne sont pas de chargement en raison de la mauvaise variable de chemin d'accès.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X