1. 程式人生 > >Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存,Beautiful Soup模組的安裝,以及scipy等包的更新

Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存,Beautiful Soup模組的安裝,以及scipy等包的更新

前言

Anaconda是一個Python的科學計算髮行版,包含了超過300個流行的用於科學、數學、工程和資料分析的Python Packages。由於Python有2和3兩個版本,因此Anaconda也在Python2和Python3的基礎上推出了兩個發行版,即Anaconda2Anaconda3

有時候我們會在電腦上同時使用Anaconda2和Anaconda3兩個版本,因此有必要考慮它們的共存問題。一般的使用場景是以其中一個版本為主,另外一個版本為輔,因此只需要達到能方便的切換到備用版本,且備用版本的pip等命令能正常使用即可。

由於Anaconda2和Anaconda3包含較多的模組,很多人是不需要這些的,因此若只想要較為純淨的Python2和Python3共存的,可以看本文最後一部分。

操作步驟

  1. 首先安裝主版本,在這裡我們選擇Anaconda2,按照正常步驟安裝即可,這裡假定安裝目錄為D:\Anaconda2

    步驟1

  2. 在這一步打上那兩個勾。

    步驟2

    第一個選項是將安裝目錄加入到系統的PATH環境變數中,以後在CMD中便可以直接用python命令啟動python。
    第二個選項是讓其他IDE能夠檢測到Anaconda2並將Anaconda2作為預設的Python 2.7。

  3. 安裝好Anaconda2之後,再安裝Anaconda3,這裡Anaconda3的安裝目錄必須選在D:\Anaconda2\envs子目錄下,如圖所示,最後的”py3”可以自己另取。

    步驟3

  4. 這裡取消掉那兩個勾(按照字面意思理解,打上第二個勾應該是沒有影響的。至於第一個選項,由於之前已經把Anaconda2新增到系統PATH路徑下了,因此再把Anaconda3新增進去,由於順序在Anaconda2的後面,幾乎是沒有作用的,所以這裡沒有勾上)。

    步驟4

  5. 安裝完成之後,在CMD裡面直接輸入python會啟動Python2,而使用activate py3py3即之前Python3安裝目錄資料夾的名字)命令之後,再使用python即可切換至Python3,如下圖所示。使用activate py3命令之後,在命令列前面會出現一個[py3]標記,此時使用任何的python命令都是在Python3下進行的。使用deactivate命令可取消啟用Python3

    步驟5

  6. 如果Spyder要切換Python3,應該怎麼做?

             首先在cmd裡面activate py3,待前面出現[py3]之後,再輸入spyder回車就行了

注意:當在pycharm IDE中指定不同的Python版本時,設定方法

File->Setting->Project:XXXX->Project Interpreter    選擇不同位置的Python即可


純淨Python共存

說是純淨,其實也不完全“純淨”,這裡需要用到另外一個發行版miniconda,它僅包含Python本身和Conda包管理器,因此體積不大。使用miniconda時的共存安裝方法與上述步驟完全一致,就不贅述了。

總結

本文的共存實現方法其實是基於conda的建立虛擬環境的功能,詳情可見此連結

因此在首先安裝主要版本之後,也可使用conda create -n py3 python=3命令來安裝Python3,但由於網路問題,這種方法容易失敗,所以自己先下載好完整安裝包,然後安裝到主版本主目錄下的envs資料夾更方便。

有人也許會說直接同時安裝Anaconda2Anaconda3,然後將Anaconda3目錄下的python.exe改為python3.exe也可實現類似的共存。但這種方法存在一個較大的缺陷,即Anaconda3內包含的某些IDE會工作不正常,如Jupyter NotebookSpyder等,因為他們依賴於安裝目錄下的python.exe,且備用版本的pip等命令也沒辦法直接使用,總體來說很不方便。

===========================================================

關於Mac系統中Anaconda2  4.4.0下安裝Python2和Python3共存問題的一些總結

Anaconda 4.4.0可以使用Anaconda-Navigator.app進行操作,其中預設也是Python2,在利用Anaconda-Navigator.app操作安裝Python3到/anaconda/envs/目錄下,具體安裝略。

環境配置:

vim ~/.bash_profile

# added by Anaconda2 4.4.0 installer

export PATH="/anaconda/:/anaconda/bin:/anaconda/envs/python36/bin:$PATH"

其中使得能找到Python2的安裝位置:/anaconda/bin

使得能找到Python36的安裝位置:/anaconda/envs/python36/bin

版本切換命令:

source ~/.bash_profile

source activate python36

deactivate python36



============================================================================

Linux和Windows環境下Beautiful Soup模組的安裝

http://jingyan.baidu.com/article/afd8f4de6197c834e386e96b.html

進入beautifulsoup4-4.4.1解壓目錄下執行如下命令

python setup.py build

python setup.py install

anaconda環境中包的更新操作:

直接執行命令 pip install scipy --upgrade  更新不成功

py3的環境路徑配置
D:\developer\Anaconda2\envs\py3;D:\developer\Anaconda2\envs\py3\Scripts;D:\developer\Anaconda2\envs\py3\Library\bin;

系統環境中下面路徑加入PATH中
D:\developer\Anaconda2\;D:\developer\Anaconda2\Scripts;D:\developer\Anaconda2\Library\bin;

在更新包時需要系統預設環境需要在Python2中

下面以更新包scipy-0.17到scipy-0.19為例:

python --version  顯示在Python 2.7中

先把pip更新到最新的版本:python -m pip install --upgrade pip

cmd終端執行pip list 顯示scipy的版本為0.17,現在要更新到0.19

先執行pip  uninstall  scipy解除安裝掉以前的版本

然後到網站中http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 下載相應的版本

pip install  filepath/scipy-0.19.1-cp27-cp27m-win_amd64.whl
pip list顯示scipy已經更新到最新的版本了


切換到Python3.5的環境中顯示Python3中的scipy沒有更新
activate py3

pip list顯示scipy的版本為0.17,現在要更新到0.19

先執行pip  uninstall  scipy解除安裝掉以前的版本

pip install   filepath/scipy-0.19.1-cp35-cp35m-win_amd64.whl

pip list顯示在Python3環境中scipy也已經更新到最新的版本了

deactivate

參考文獻:

Python匯入Scipy子模組時出現問題?

匯入Scipy子模組時報錯,出現的問題都是提示
No module named 'numpy._distributor_init'
具體程式碼見下方。

---> 61 from numpy._distributor_init import NUMPY_MKL # requires numpy+mkl
62
63 from numpy import show_config as show_numpy_config

ImportError: No module named 'numpy._distributor_init'

解決方法:

下載相應的包進行安裝

pip install   filepath/numpy-1.13.1+mkl-cp27-cp27m-win_amd64.whl

activate py3

pip install   filepath/numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl

/anaconda/bin