2016-05-24 5 views
2

Here Je lis comment ajouter à PYTHONPATH chez les poissons, et cela fonctionne bien pour une chaîne.Ajouter * plusieurs * chemins à PYTHONPATH chez les poissons

Cependant, si je fais ceci:

set --export PYTHONPATH $PYTHONPATH path1 path2

Je reçois ceci:

>> import os 
>> os.environ["PYTHONPATH"] 
'path1\x1epath2' 

Autre possibilité:

$ python -c "import os; print os.environ['PYTHONPATH']" 
path1path2 

Quel est le problème ici?

Répondre

0

Vous pouvez définir plusieurs chemins en séparant les deux-points des chemins dans la variable d'environnement. Je ne me poisson, mais en ZSH par exemple, je ferais:

$ export PYTHONPATH=/path/to/foo:/path/to/bar 
$ python -c "import sys; print sys.path" 
['', '/path/to/foo', '/path/to/bar', ... 
+0

qui ne fonctionne pas pour moi. Essayé 'set --export PYTHONPATH $ PYTHONPATH" chemin1; chemin2 "' et obtenu '" chemin1; chemin2 "' comme un seul chemin. Dans le poisson, généralement, vous définissez plusieurs éléments en les séparant l'espace. – Xiphias

+1

Oui, mais le poisson n'utilise pas nécessairement * ces * variables d'environnement. Si python requiert une chaîne séparée par deux points, utilisez 'set -x PYTHONPATH" $ PYTHONPATH: chemin1: chemin2 "' –

+1

@Xiphias séparés par des deux-points, pas par des points-virgules. il apparaîtra dans 'os.environ' en tant que variable d'environnement unique (il n'en est qu'une, après tout), mais il sera ajouté à' sys.path' (ce que nous voulons de toute façon) en tant que deux éléments. – dcrosta

2

Si vous utilisez du poisson 2.2.0 (ou 2.3.0 vient de sortir) il y a seulement trois env vars que sont automatiquement divisés et joints par deux-points: PATH, MANPATH, CDPATH. Toutes les autres variables d'environnement de la liste "path" sont traitées comme des tableaux d'éléments uniques sauf si vous les avez explicitement définies sur plus d'une valeur comme dans votre exemple. Cependant, si vous faites cela quand ils sont exportés, les valeurs sont séparées par le caractère ASCII RS (0x1E). Vous devriez gérer PYTHONPATH comme vous le feriez dans bash, zsh, etc.

Le projet Fish a plusieurs problèmes ouverts où nous discutons des améliorations possibles à la manipulation de ces variables. Voir

https://github.com/fish-shell/fish-shell/issues/2090

https://github.com/fish-shell/fish-shell/issues/1656

https://github.com/fish-shell/fish-shell/issues/436