在Windows下運行anaconda需要如何設置環境變數,它又有何作用?

系統變數又是什麼?為什麼要給python配置環境變數?python的解釋器和編輯器有什麼關係?當我安裝了anaconda後,如何安裝使用其他編輯器,並且如何配置環境變數。

拒絕伸手黨:我查閱了很多資料,要麼就是簡單粗暴的操作流程,要麼就是冷冰冰的深奧的知識羅列,我並不能看懂。

能否用一種比喻的方式簡單明了地解釋我的心中的疑惑?

感謝


這麼多名詞誰搞得懂, 至少我弄不明白.

其實這麼多東西, 本質上就一個,就是在不進入anaconda的bin目錄時候,

可以直接運行python.exe.

windows在path(也叫環境變數)裡面加入 anaconda的bin目錄.

各種編輯器 ide也是設置里填入python.exe的絕對路徑.


首先給你說下shell的原理:你在shell輸入一個命令,首先shell去fork一個子進程,然後這個子進程去調用execl函數去載入你輸入那個命令的代碼(你輸入的每一個命令都是有其可執行程序的),運行你輸入的命令的代碼。但是,比如你在shell中輸入python,shell應該去哪兒找python解釋器的代碼呢?一般默認就是當前路徑,如果沒找到咋辦?這個時候就要環境變數了,環境變數就是一個地址,讓shell去這些地址里找我要執行的代碼,你看你的path路徑,不就是一個個目錄嗎?不知道這麼說你能明白不?


環境變數可以有很多,它們的作用也不一定相關聯,這裡就只解釋一下path變數吧。

操作系統要運行一個程序,它必須要知道這個程序的可執行文件在什麼位置。

對於平常使用的桌面應用,雙擊的快捷方式文件中就儲存了這些信息。

而對於控制台應用,需要手動輸入命令。如果只輸入 xxx.exe,操作系統可找不到它,畢竟系統里有那麼多文件夾。所以運行一個不在path中的程序,必須輸入絕對路徑,或者從當前目錄出發的相對路徑,讓操作系統能找到它。

path 變數,則是告訴系統:「我要運行一個程序時,如果只告訴了你文件名,那麼你就從這些文件夾裡面找。」

於是,當你輸入 python,系統就會遍歷path變數里設置的路徑:

c:windows 裡面有沒有叫 python 的程序? 沒有,去下一條路徑找。

...以此類推。

所以,要添加那些需要直接從控制台運行的程序所在的文件夾到path變數中。

對於anaconda,假設你的anaconda安裝在 c:users omanaconda3 這個位置,可以先新建一個變數 conda=c:userszzeanaconda3,然後在路徑中添加這三條:

  1. %conda% 這是 python.exe,pythonw.exe 解釋器所在的位置。
  2. %conda%scripts 這是使用 conda 安裝的python包提供的腳本與可執行文件所在的位置。
  3. %conda%libraryin 這是使用 conda 安裝的二進位包,比如 pyqt,提供的工具所在的位置。


是系統配置環境吧。


記住這些原則(個人理解):

1.計算機就是讓人偷懶的

2.怎麼能偷懶而且比較合理的偷懶

環境變數就是讓大家都知道的地方是一種偷懶手段,可以比喻成地址的簡寫,比如,小A加住北京市朝陽區東城區八里庄街道六弄xx小區xx號樓xx號。你要找他就要把上述神煩神煩的地址都說完才能找到他是吧

但是你如果要找某個故宮裡面住的人小b,直接說故宮就行 大家都知道故宮代表--------北京市長安街1號(我的地理知識在此暴露了)……

轉到計算機,當你在命令行裡面輸入一個程序名的時,你有沒有想過命令行咋就這麼牛x知道去哪找這個程序運行啊?這裡就用到了環境變數了,不用說肯定在環境變數裡面寫好了的啊,一般會按照環境變數的裡面的path路徑去搜索,如果沒有的話,對不起---無法運行……當然你也可以輸入全路徑運行,如果你不嫌煩的話

閑著也是閑著,至於你說的啥是編譯器啥是編譯器,本人拒絕回答


- python沒有環境變數,系統有。環境變數有很多,一般用來存很多程序間共享的配置信息。比如USER這個變數用於存用戶名。這樣比如我想寫個程序說「親愛的XX」你好我就可以讀這個變數,比如和其他答案說的PATH一樣,這個用於告訴shell可以到那些目錄下找可執行程序,這樣用戶不用輸入完整地址。比如LD_LIBRARY_PATH(Windows上沒有,用的是path)用來存動態庫的搜索地址,這樣如果你的一個程序要調用一個動態庫里的函數,系統才知道這貨的二進位代碼到底存在哪裡

- python沒有編輯器,有可以方便python編程的編輯器

- 解釋器和編輯器沒有一毛錢關係

- 我覺得題主要先學習一個,因為問的問題它,不成立啊


推薦閱讀:

Python 模塊源碼分析:queue 隊列
為什麼要學習Python?學習Python可以做什麼?
python爬蟲18 | 就算你被封了也能繼續爬,使用IP代理池偽裝你的IP地址,讓IP飄一會
面試python崗位,提問:連接字元串用join還是+,怎麼回答?
PHP 敗給 Python 的十大理由

TAG:Python | Python入門 | Anaconda |