Python - centos7.3配置python2、3環境與配置各自pip - 本篇可以廢棄了


環境:CentOS-7-x86_64-Everything-1611

No.1 查看CentOS對Python的默認依賴

[root@cs ~]# ls /usr/bin/python*
/usr/bin/python  /usr/bin/python2  /usr/bin/python2.7

因為CentOS的yum對Python的依賴,我們在安裝Python的時候,要小心避開,以免影響yum的使用。

No.2 准備編譯環境以及配置相關依賴

[root@bogon nee]# yum groupinstall 'Development Tools' && yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel && yum -y epel-release

需要注意的是,這一步必須要做,為了避免后面安裝解釋器時遇見錯誤。

No.3 下載Python解釋器及各自的pip包,並解壓

3.1 下載tar包

[root@bogon nee]# cd /usr/local/src/
[root@bogon src]# wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz && wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz && wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.3.tar.gz && wget https://bootstrap.pypa.io/get-pip.py

3.2 解壓tar包

[root@bogon src]# tar -xvf Python-3.5.4.tar.xz && tar -xvf Python-2.7.14.tar.xz && tar -zxvf 9.0.3.tar.gz

No.4 Python2的安裝並建立軟連

4.1 安裝

[root@bogon src]# cd Python-2.7.14/
[root@bogon Python-2.7.14]# ./configure --prefix=/usr/local/python/python27 --enable-optimizations
[root@bogon Python-2.7.14]# make && make install

我們在 ./configure 這一步,將Python2安裝在/usr/local/python/python27這個目錄下,下面Python3也在/usr/local/python目錄下,這樣便於管理,和安裝其他版本的解釋器。

4.2 建立軟連

我們可以看到bin下有python和python2和python2.7這三個可以用的解釋器

[root@bogon Python-2.7.14]# ls /usr/local/python/python27/bin/ 
2to3 idle pydoc python python2 python2.7 python2.7-config python2-config python-config smtpd.py

任選一個解釋器建軟連都行  

[root@bogon Python-2.7.14]# ln -s /usr/local/python/python27/bin/python2 /usr/bin/python27

注意,軟連到/usr/bin的是python27,因為系統默認有python2,所以,我們不能跟人家一樣...下面其他的軟連同理,避開系統默認的

No.5 Python3的安裝並建立軟連

這里建立軟連和添加PATH一樣,用哪種方法都行, 軟連的意思是將python的解釋器添加到 /usr/bin 下,而 /usr/bin 這個路徑在PATH中已經存在的

5.1 安裝

[root@bogon Python-2.7.14]# cd ../Python-3.5.4/
[root@bogon Python-3.5.4]# ./configure  --prefix=/usr/local/python/python35 --enable-optimizations
[root@bogon Python-3.5.4]# make && make install

5.2 建軟連

注意:/usr/local/python/python35/bin/ 下的解釋器叫什么,最好ls一下看看。

[root@bogon Python-3.5.4]# ln -s /usr/local/python/python35/bin/python3 /usr/bin/python35

No.6 配置Python3的pip並建立軟連

6.1 安裝Python3的pip包

[root@bogon Python-3.5.4]# ls /usr/local/src/ && cd ../pip-9.0.3/
9.0.3.tar.gz  pip-9.0.3      Python-2.7.14.tar.xz  Python-3.5.4.tar.xz
get-pip.py    Python-2.7.14  Python-3.5.4
[root@bogon pip-9.0.3]# python35 setup.py install

可以看到Python3的pip包是pip-9.0.3,所以我們要切換到此目錄內,執行安裝,這一步是基於前面步驟沒有問題的基礎上執行的。比如你python35的解釋器沒有配好,那么根本無法執行pip的安裝。

6.2 建立pip3的軟連

# [root@bogon pip-9.0.3]# ln -s /usr/local/python/python35/bin/pip /usr/bin/pip  # 這個軟連可不建立,這樣只是沒有默認的pip
[root@bogon pip-9.0.3]# ln -s /usr/local/python/python35/bin/pip /usr/bin/pip35

我們在用pip的時候,直接pip35就行,下面的Python2的pip同理。

No.7 配置Python2的pip並建立軟連

7.1 安裝Python2的pip包

[root@bogon pip-9.0.3]# cd .. && ls
9.0.3.tar.gz  pip-9.0.3      Python-2.7.14.tar.xz  Python-3.5.4.tar.xz
get-pip.py    Python-2.7.14  Python-3.5.4
[root@bogon src]# python27 get-pip.py

7.2 建立Python2的軟連

[root@bogon src]# ln -s /usr/local/python/python27/bin/pip2 /usr/bin/pip27

No.8 執行測試

[root@cs src]# python35 -V
Python 3.5.4
[root@cs src]# pip35 -V
pip 9.0.3 from /usr/local/python/python35/lib/python3.5/site-packages/pip-9.0.3-py3.5.egg (python 3.5)
[root@cs src]# python27 -V
Python 2.7.14
[root@cs src]# pip27 -V
pip 10.0.1 from /usr/local/python/python27/lib/python2.7/site-packages/pip (python 2.7)

No.9 選擇升級(此步驟可略過)

目前最新的pip包為10.0.1,如果不升級,在每次使用pip的時候,會提示你升級,當然我們可以忽略,如果要升級的話:

pip35 install --upgrade pip    # Python3的pip升級方式
pip27 install --upgrade pip    # Python2的pip升級方式

至此,我們在centos下成功安裝雙版本的python解釋器並設置各自的pip。只是沒有默認的解釋器和pip,但我們為了省事沒有修改系統依賴的yum頭,而且,修改yum頭的話,新手容易失手。

1.  保存默認版本,並建立yum依賴的軟連
    mv /usr/bin/python2.7 /usr/bin/python2.7.5
    ln -s /usr/bin/python2.7.5 /usr/local/bin/python2.7.5
    ll /usr/bin/yum*
    vi /usr/bin/yum*
    vi /usr/libexec/urlgrabber-ext-down
        #!/usr/bin/python —> #!/usr/bin/python2.7.5

3. 准備編譯環境與相關依賴
    yum groupinstall 'Development Tools' && yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel && yum -y epel-release
4. 下載解釋器與pip的tar包,執行解壓
    cd /usr/local/src

    wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz && wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz && wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.3.tar.gz && wget https://bootstrap.pypa.io/get-pip.py

    tar -xvJf Python-3.5.4.tar.xz && tar -xvJf Python-2.7.14.tar.xz && tar -zxvf 9.0.3.tar.gz

# xz壓縮方式,tar打包方式

5. 執行安裝,並建立各自的軟連
    cd Python-3.5.4
    ./configure  --prefix=/usr/local/python/python35 --enable-optimizations

    make && make install
    mkae clean && make distcleancd 

    ln -s /usr/local/python/python35/bin/python3 /usr/bin/python3
    ln -s /usr/local/python/python35/bin/python3 /usr/bin/python
    
    cd /usr/local/src/Python-2.7.14
    ./configure  --prefix=/usr/local/python/python27 --enable-optimizations

    make && make install
    mkae clean && make distcleancd
    ln -s /usr/local/python/python27/bin/python2 /usr/bin/python2

7. 配置python3 的pip

    wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.3.tar.gz


    tar -zxvf 9.0.3.tar.gz
    cd pip-9.0.3
    python3 setup.py install
    ln -s /usr/local/python/python35/bin/pip3 /usr/bin/pip3
    ln -s /usr/local/python/python35/bin/pip /usr/bin/pip
    pip3 install --upgrade pip


python2 配置pip
wget https://bootstrap.pypa.io/get-pip.py
python2 get-pip.py
ln -s /usr/local/python/python27/bin/pip2 /usr/bin/pip2

pip2 install --upgrade pip
測試筆記

that's all

see also:

  https://www.linuxidc.com/Linux/2017-12/149807.htm

  解決yum頭部對Python依賴的問題,強迫症可以看看

  centos7安裝python3 以及tab補全功能

  [Python3網絡爬蟲開發實戰] 1.1-Python3的安裝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM