Python 初學者常見錯誤——我有 Anaconda 了,還能單獨安裝 Python 嗎?

Python 初學者常見錯誤——我有 Anaconda 了,還能單獨安裝 Python 嗎?

Python 初學者常見錯誤——我有 Anaconda 了,還能單獨安裝 Python 嗎?

攝影:產品經理
廚師:kingnamepython

有一些 Python 初學者,在學習網上教程的時候是以 Anaconda 入門的。此時他們電腦裏面第一個 Python 環境是 Anaconda 裏面的 Python。git

在這種狀況下,還能直接從 Python 官網下載安裝其餘版本的 Python 嗎?github

咱們知道 Python2 與 Python3 是能夠共存的。那麼 Python 3.5與 Python 3.6能共存嗎?Python 3.6.1與 Python 3.6.2能共存嗎?windows

一臺電腦上面能安裝多少個 Python?scrapy

我要告訴你的是,不只僅原來有 Anaconda 之後還能安裝官網的 Python,實際上你電腦裏面想安裝多少個 Python 均可以。甚至你想在電腦上面安裝10個 Python3.7.1也能夠。ide

你安裝 Python,本質上就是在電腦上安裝了一個文件夾,這個文件夾裏面有一個 python.exe和各類子文件夾。學習

因此,你徹底能夠把 Python 3.7.1安裝到 C:\python371,把 Python 3.7.2安裝到 C:\python372這兩個文件夾下。blog

因而,當你使用 C:\python371\python xxx.py的時候,就是用的 Python 3.7.1來運行這個文件,當你使用 C:\python372\python xxx.py的時候,就是用的 Python 3.7.2來運行這個文件。教程

那麼當咱們在 CMD 裏面直接輸入 python xxx.py的時候,它用的是哪一個 Python 呢?實際上這根本就不關 Python 的事情。這是系統的環境變量決定的。ip

不管是哪一個系統,當你執行 python xxx.py的時候,它首先會檢查 python是否是系統命令,發現不是,因而會在當前文件夾下面找有沒有一個可執行文件,名字叫作 python.exe(或者python.bat),發現也沒有,此時,他就會根據環境變量裏面記錄的文件夾,一個文件夾一個文件夾去尋找。

例如環境變量是:c:\ windows\system32;c:\program files;c:\python371;c:\python372。那麼此時,CMD 會首先去 C:\Windows\System32文件夾下面尋找 python.exe,發現找不到,因而又去 c:\ProgramFiles文件夾去找,發現也找不到,而後檢查 C:\python371文件夾,找到了,因而就使用 Python 3.7.1來運行文件。

若是你想在 CMD 運行 python xxx.py時,默認使用 Python 3.7.2來運行怎麼辦呢?很是簡單,只須要把環境變量修改成:c:\ windows\system32;c:\program files;c:\python372;c:\python371便可。

因此,你能夠在你的電腦上安裝100個相同版本或者不一樣版本的 Python,你想用哪一個,能夠直接經過絕對路徑來啓動,或者修改環境變量,把你想用的那個版本的 Python 設置到最前面。

至於安裝在 Python 裏面的第三方庫,也很是簡單,你們打開 Python 的安裝文件夾,能夠發現裏面有一個 site-packages文件夾,當你使用某個版本的 Python 對應的 pip (此時你應該這樣寫:c:\python371\python-m pip install xxx) 安裝了一個第三方庫之後,這個第三方庫就會被放在這個文件夾裏面。當你 Python 運行的程序須要使用第三方庫的時候,它就會到本身的 site-packages文件夾裏面去尋找。

因此,不一樣版本的 Python 因爲擁有本身的 site-packages文件夾,因此他們各自安裝的第三方庫互不干擾。

你安裝的某些第三方庫,會生成一個可執行文件。例如當你安裝了 Scrapy之後,你會發如今CMD 裏面能夠執行 scrapy 命令。實際上,本質也是 pip 把一個 scrapy 可執行文件複製到了對應 Python 版本的文件夾裏面的 scripts文件夾 (macOS 或 Linux 是 bin 文件夾)裏面而已。當你執行 scrapy命令的時候,CMD 會去環境變量裏面對應的各個文件夾中尋找對應的 scrapy.exe文件,找到了就運行。

因此,可能會出現這樣的狀況,你在 Python 3.7.2環境裏面安裝了 Scrapy,可是在 CMD 裏面運行卻提示找不到 scrapy命令。這種狀況下,多是因爲你的環境變量裏面設置的是其餘 Python 的路徑,沒有設置 Python 3.7.2的路徑。

Python 的 virtualenv 本質上也是一樣的原理。當你電腦裏面本來只有一個 Python 的時候,你能夠經過 virtualenv 建立另一個環境,這個環境看起來就像是把系統環境的 Python 複製了一份出來。因此當你使用虛擬環境的 Python 的時候,安裝的第三方庫都是安裝在虛擬環境的 site-packages文件夾裏面的,就不會影響系統環境的 Python。

固然,virutalenv 建立虛擬環境的時候,並非把全部文件都真正的複製了一份。而是建立了一個 軟鏈接。在虛擬環境中經過這個軟鏈接運行的本質上仍是系統環境的 Python,可是因爲這個虛擬環境也有 site-apckages 文件夾,因此它會使用虛擬環境的 site-packages。這就解釋了爲何當你建立一個虛擬環境之後,再把系統環境的 Python 刪掉,你會發現虛擬環境的 Python 也不能運行了。

總之一句話,若是你想在一個電腦上安裝多個 Python,這沒有任何問題。惟一可能給你帶來困擾的是不一樣 Python 都把本身的文件夾路徑添加到了環境變量中,那麼哪一個 Python 先執行,哪一個 Python 後執行,這是環境變量給你帶來的困擾,而不是 Python 自己。

關於 Python 初學者常見的更多錯誤和解決方法,你們能夠關注本公衆號的更新,也能夠在 Github 上看到合集:

https://github.com/kingname/SourceCodeOfBook/blob/master/Python初學者常犯的錯誤及其解決辦法.md

Python初學者常犯錯誤及解決方法自查

相關文章
相關標籤/搜索