54

Continuum.io の Python Anaconda ディストリビューションを使用して作業を開始していますscipyAnaconda を起動して実行することはできましたが、Anaconda が作成する新しい環境ごとに新しい環境変数を作成するのか、共通システムに依存するの
かはわかりません。 PYTHONPATHPYTHONPATH

ドキュメントでこれに関する情報を見つけることができませんでした。

さらに、 を実行したとき、新しく作成された環境に変数がprintenv表示されませんPYTHONPATHでしたが、anaconda によって作成された新しい環境変数がいくつか見つかりました。

私が見つけることができる最良の方法は、AnacondaがいくつかのAnacondaディレクトリと新しい環境ディレクトリをPATH変数の先頭に追加したことです-しかし、これは必ずしもシステム環境から新しいパッケージを分離するわけではありませんが、近いです.

この質問に対する答えを知っている人、またはこの懸念に対処する方法を見つけた人はいますか?

4

2 に答える 2

38

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

を解除すると、間違ったpandas PYTHONPATHlib がロードされるのを防ぎます。

unset PYTHONPATH
source activate anaconda-2.7
python
>>>> import pandas as pd
>>>>
于 2015-08-05T19:24:28.793 に答える