Je commence à travailler avec la distribution Python Anaconda de Continuum.io pour faire scipy
.
J'ai pu installer Anaconda, mais je ne peux pas dire s'il crée une nouvelle variable d'environnement PYTHONPATH
pour chaque nouvel environnement créé, ou s'il repose sur le système commun PYTHONPATH
.
Je n'ai trouvé aucune information à ce sujet dans la documentation.
En outre, lorsque j’ai fait un printenv
, je n’ai pas vu de variable PYTHONPATH
dans l’environnement nouvellement créé - bien que j’ai trouvé quelques nouvelles variables d’environnement créées par anaconda.
Le meilleur que je puisse trouver, c’est que Anaconda a ajouté des répertoires Anaconda et le nouvel annuaire d’environnement à l’en-tête de la variable PATH
- mais cela n’isole pas nécessairement le nouveau package de l’environnement système, mais il est proche.
Est-ce que quelqu'un connaît la réponse à cette question ou a trouvé un moyen de traiter cette préoccupation?
Non, la seule chose qui doit être modifiée pour un environnement Anaconda est le PATH (pour qu’il obtienne le droit Python de l’environnement bin/
répertoire, ou Scripts\
sur Windows).
La façon dont les environnements Anaconda fonctionnent est de relier en dur tout ce qui est installé dans l’environnement. À toutes fins utiles, cela signifie que chaque environnement est une installation complètement distincte de Python et de tous les packages. En utilisant des liens physiques, cela est fait efficacement. Ainsi, il n'est pas nécessaire de jouer avec PYTHONPATH parce que le binaire Python de l'environnement recherche déjà les sites-packages dans l'environnement, la bibliothèque de l'environnement, etc.).
Anaconda n'utilise pas le PYTHONPATH
. Il faut toutefois noter que si PYTHONPATH
est défini, il pourrait être utilisé pour charger une bibliothèque qui ne se trouve pas dans l’environnement anaconda. C’est pourquoi, avant d’activer un environnement, il peut être intéressant de faire une
unset PYTHONPATH
Par exemple, ce PYTHONPATH pointe vers un incorrect pandas lib:
export PYTHONPATH=/home/john/share/usr/anaconda/lib/python
source activate anaconda-2.7
python
>>>> import pandas as pd
/home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.Egg/pandas/hashtable.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.Egg/pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: /home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.Egg/pandas/hashtable.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8
la désactivation de PYTHONPATH
empêche le chargement du mauvais pandas lib:
unset PYTHONPATH
source activate anaconda-2.7
python
>>>> import pandas as pd
>>>>