2015-09-01 36 views
10

我的Mac上安裝巨蟒爲Python 3.4後,我獲得持續的信息,說:安裝蟒蛇後,我獲得持續的「KeyError異常:‘PYTHONPATH’」的消息

Error in sitecustomize; set PYTHONVERBOSE for traceback: 
KeyError: 'PYTHONPATH' 

用作其它問題建議的用戶,我使用

PYTHONVERBOSE=1 conda update --all 

而且收到了回溯:

Traceback (most recent call last): 
    File "/Users/user/anaconda/lib/python3.4/site.py", line 506, in execsitecustomize 
    import sitecustomize 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1471, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "/usr/local/lib/python2.7/site-packages/sitecustomize.py", line 15, in <module> 
    str(sys.version_info[0]) + '.x!\n  PYTHONPATH is currently: "' + str(os.environ['PYTHONPATH']) + '"\n' + 
    File "/Users/user/anaconda/lib/python3.4/os.py", line 633, in __getitem__ 
    raise KeyError(key) from None 
KeyError: 'PYTHONPATH' 
# destroy sitecustomize 

我已經看了看周圍,發現「P YTHONPATH'在os.environ中並不存在。

回答

13

如果您的PYTHONPATH環境變量已設置,請取消設置。您可以使用echo $PYTHONPATH進行確認。如果它被設置,它可能來自〜/ .profile或〜/ .bash_profile中的內容。

問題是文件/usr/local/lib/python2.7/site-packages/sitecustomize.py。您可能想要檢查該文件是什麼以及它來自哪裏,但刪除它應該可以解決問題。

+0

工程就像一個魅力。謝謝! –

+2

使用自制軟件安裝miniconda會寫入該文件,當設置'$ PYTHONPATH'時會導致問題。重命名(或刪除)它可以解決此問題,而不會取消設置'$ PYTHONPATH'。 – alistaire

+2

這爲我修好了。只需重新命名文件:'sudo mv /usr/local/lib/python2.7/site-packages/sitecustomize.py/usr/local/lib/python2.7/site-packages/sitecustomize_backup.py' –

6

會壞死,答案在這裏更多的細節來搜索顯示的錯誤後,可能打這個頁面鄉親...

如果您的Mac有參考消息在/ usr /本地/,我要繼續前進並假設你已經使用自制軟件來安裝一些東西。在這種情況下,Python。

當安裝了Anaconda的Python發行版時,它將檢查的一件事是,是否有任何網站自定義應用於現有的Python安裝。如果您使用Homebrew安裝了任何版本的Python,則可能會有這種網站自定義。

  1. 運行conda info -a | grep dirs會得到你的蟒蛇安裝信息和查找與dirs線包括在內。只有一個應該匹配,如果它存在:

    user site dirs: ~/.local/lib/python3.5

  2. 如果確實存在cd到該目錄(不管它是什麼),並獲得一個目錄列表(ls)。然後,您將(可能)找到一個名爲homebrew.pth的文件。

  3. 刪除該文件,錯誤消失。

原因:蟒蛇會引用homebrew.pth文件,然後繼續從你剛纔自制 -installed Python版本包括sitecustomize.py

+0

這是非常有用的信息,謝謝! – Rob

+1

它工作,謝謝!實際上,'homebrew.pth'文件位於用戶dir站點內的文件夾中 – Abramodj