Подтвердить что ты не робот

Создает ли anaconda отдельную переменную PYTHONPATH для каждой новой среды?

Я начинаю работать с пакетом Anaconda от Continuum.io, чтобы сделать scipy работу. Мне удалось запустить и запустить anaconda, но я не могу сказать, создает ли anaconda новую переменную среды PYTHONPATH для каждой создаваемой новой среды или использует ли она общую систему PYTHONPATH? Я не мог найти никакой информации об этом в документации. Кроме того, когда я сделал printenv, я не видел переменную PYTHONPATH во вновь созданной среде, хотя я нашел несколько новых переменных среды, созданных anaconda. Самое лучшее, что я могу найти, это то, что anaconda добавила некоторые каталоги anaconda и новый каталог среды в голову переменной PATH - но это не обязательно изолирует новый пакет от системной среды, но близко. Кто-нибудь знает ответ на этот вопрос или нашел способ справиться с этой проблемой.

4b9b3361

Ответ 1

Нет, единственное, что нужно изменить для среды Anaconda, это PATH (чтобы он получил правильный Python из каталога bin/ среды или Scripts\ в Windows).

Как работает среда Anaconda, они жестко связывают все, что установлено в среде. Для всех целей и целей это означает, что каждая среда представляет собой полностью отдельную установку Python и всех пакетов. Используя жесткие ссылки, это делается эффективно. Таким образом, нет необходимости связываться с PYTHONPATH, потому что бинарный файл Python в среде уже выполняет поиск пакетов сайта в среде и lib среды и т.д.

Ответ 2

Anaconda не использует PYTHONPATH. Однако следует отметить, что если параметр PYTHONPATH установлен, его можно использовать для загрузки библиотеки, которая не находится в среде anaconda. Вот почему, прежде чем активировать среду, может быть полезно сделать

unset PYTHONPATH

Например, этот PYTHONPATH указывает на неправильный 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

Отключение PYTHONPATH предотвращает загрузку неправильной pandas lib:

unset PYTHONPATH
source activate anaconda-2.7
python
>>>> import pandas as pd
>>>>