1. 程式人生 > >使用Anaconda遇到問題的總結(持續更新)

使用Anaconda遇到問題的總結(持續更新)

目錄

 

1.如何在cmd中用python

2.PYTHONHOME的重要性

3.深受PYTHONHOME之苦的Anaconda

3.1.在navigator下打不開Spyder、Qt Console等

3.2.打不開navigator,打不開Spyder、Qt Console等


1.如何在cmd中用python

安裝完anaconda後,想用cmd檢視、使用python,大部分人可能會遇到‘python不是不是內部命令或外部命令,也不是可執行程式解決方案’。原因很簡單,系統裡面沒有“python”這個變數,那就新增環境變數吧:

此電腦->屬性->高階系統設定->環境變數,在系統變數裡找到“PATH”,然後新增以下路徑:

F:\Anaconda2
F:\Anaconda2\Library\bin
F:\Anaconda2\Scripts

這三個路徑要靈活處理,主要看你需要新增的python版本號,因為anaconda是可以管理多個版本的。例如上述的路徑是新增改版本anaconda預設的python版本,該版本的python解析器就在F:\Anaconda2下。設定好環境變數,在cmd中輸入python:

如果想切換版本,就需要在“PATH”中修改,比如修改成喵哥在anaconda裡新增的python3.6:

F:\Anaconda2\envs\x64_36
F:\Anaconda2\envs\x64_36\Library\bin
F:\Anaconda2\envs\x64_36\Scripts

然而,有一點需要注意:

如果在系統變數裡添加了PYTHONHOME變數,必須要求PYTHONHOME與PATH中的第一個(上述)路徑保持一致,不然會報錯:

E:\>python
Fatal Python error: Py_Initialize: unable to load the file system codec
  File "F:\Anaconda2\lib\encodings\__init__.py", line 123
    raise CodecRegistryError,\
                            ^
SyntaxError: invalid syntax

Current thread 0x00002a44 (most recent call first):

當然,刪掉PYTHONHOME也是一種選擇,但是PYTHONHOME變數是有其存在意義的,欲知詳情,往下讀。

2.PYTHONHOME的重要性

PYTHONHOME變數用的地方比較多,比較常見的就是C++呼叫python,喵哥在其他部落格(“探坑”——在C++中執行python指令碼的艱辛嘗試)也提到過,如果不定義一個正確的PYTHONHOME變數,會遇到類似以下的錯誤:

Fatal Python error: Py_Initialize: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'

另外,PYTHONHOME變數的路徑值也要跟呼叫python的版本一致,不然會出現以下錯誤:

Fatal Python error: Py_Initialize: unable to load the file system codec
  File "F:\Anaconda2\lib\encodings\__init__.py", line 123
    raise CodecRegistryError,\
                            ^
SyntaxError: invalid syntax

Current thread 0x00002a44 (most recent call first):

其實PYTHONHOME影響的不只是其他運用python的工作,還影響管理python的工作——anaconda。

3.深受PYTHONHOME之苦的Anaconda

3.1.在navigator下打不開Spyder、Qt Console等

喵哥安裝的Anaconda是預設2.7的python,由於工作需要,喵哥把PYTHONHOME設定為預設的python:

F:\Anaconda2

又由於工作需要,喵哥在navigator管理的python3.6開啟Spyder,沒有開啟,出現了由於PYTHONHOME設定值與使用python版本不一致的錯誤:

這個跟前面敘述的差不多,所以修改PYTHONHOME的值就好了。。。。。。嗎?

too young,too simple!

3.2.打不開navigator,打不開Spyder、Qt Console等

喵哥根據呼叫C++時遇到的問題,照舊修改PYTHONHOME,根據所需修改PYTHONHOME為

F:\Anaconda2\envs\x64_36

這個時候就尷尬了,連navigator都打不開,點選圖示,滑鼠等待圈就閃退,顯然是打不開了。根據網上的方法,在系統盤裡的user-使用者名稱下刪除.Spyder等資料夾也沒有成功,不過這個方法對於PYTHONHOME不存在或者是anaconda預設python路徑的情況下,打不開Spyder時是有效的。

然而,現在的問題不一樣,刪了這些資料夾,點選圖示依舊是滑鼠轉圈圈。難道就用不了其他版本的Spyder麼?

刪掉PYTHONHOME萬事大吉!!!

第一次覺得這個介面也蠻可愛嘛!

需要用的時候記得再新增PYTHONHOME變數。