not - set pythonpath
¿`Anaconda` crea una variable PYTHONPATH separada para cada entorno nuevo? (2)
Anaconda no usa el PYTHONPATH
. Sin embargo, se debe tener en cuenta que si se establece PYTHONPATH
, se podría usar para cargar una biblioteca que no está en el entorno anaconda. Es por eso que antes de activar un entorno podría ser bueno hacer una
unset PYTHONPATH
Por ejemplo, este PYTHONPATH apunta a una lib de pandas incorrecta:
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
Al deshacer la PYTHONPATH
evita que se carguen las pandas lib incorrectas:
unset PYTHONPATH
source activate anaconda-2.7
python
>>>> import pandas as pd
>>>>
Estoy empezando a trabajar con la distribución Python Anaconda de Continuum.io para hacer scipy
trabajo scipy
.
He podido poner en funcionamiento Anaconda, pero no puedo decir si Anaconda crea una nueva variable de entorno PYTHONPATH
para cada nuevo entorno que crea , o si depende del sistema común PYTHONPATH
.
No pude encontrar información sobre esto en la documentación.
Además, cuando hice una printenv
, no vi una variable PYTHONPATH
en el entorno recién creado, aunque encontré algunas nuevas variables de entorno creadas anaconda.
Lo mejor que puedo encontrar es que Anaconda agregó algunos directorios de Anaconda y el nuevo directorio de entorno al encabezado de la variable PATH
, pero esto no aísla necesariamente el nuevo paquete del entorno del sistema, pero está cerca.
¿Alguien sabe la respuesta a esta pregunta o encontró una manera de lidiar con esta preocupación?
No, lo único que se debe modificar para un entorno Anaconda es la RUTA (para que obtenga el Python correcto del directorio bin/
del entorno, o Scripts/
en Windows).
La forma en que funcionan los entornos de Anaconda es que enlazan todo lo que se instala en el entorno. Para todos los efectos, esto significa que cada entorno es una instalación completamente separada de Python y todos los paquetes. Mediante el uso de enlaces duros, esto se hace de manera eficiente. Por lo tanto, no hay necesidad de meterse con PYTHONPATH porque el binario de Python en el entorno ya busca los paquetes de sitio en el entorno, y la lib del entorno, y así sucesivamente.