1. 程式人生 > 實用技巧 >Ubuntu下的Python安裝

Ubuntu下的Python安裝

一、原始碼安裝

  1. 下載安裝包

    cd /usr/local/src
    wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
    
  2. 解壓安裝包

    tar -xvf Python-3.7.6.tgz
    

  3. 安裝所需依賴

    # 更新安裝源(Source)
    sudo apt-get update
    
    # 同時安裝多個軟體包(已安裝的會自動忽略), -y 表示對所有詢問都回答 Yes
    sudo apt-get install -y gcc make build-essential libssl-dev zlib1g-dev \
    libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
    libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
    
  4. 編譯安裝(安裝到 /usr/python3 )

    # 建立安裝目錄
    sudo mkdir /usr/python37
    
    # 進入 解壓後的 原始碼資料夾
    cd Python-3.7.6
    
    # 配置, 檢查安裝環境, 生成 Makefile 檔案, 指定安裝到 /usr/python3
    ./configure --enable-optimizations --prefix=/usr/python37
    # 或者
    ./configure
    
    # 編譯和安裝(需要一段時間, 耐心等待)
    sudo make && make install
    
    • ./configure 時如果報錯沒有生成 Makefile 檔案,根據報錯資訊安裝相應的編譯器或依賴,再重新執行;
    • make && make install 時如果還需要其他依賴,根據報錯資訊逐一安裝依賴後再重新執行。
  5. 檢視安裝結果

    /usr/python37
            ├── bin
            │   ├── python3
            │   ├── pip3
            │   └── ...
            ├── lib
            │   └── ...
            ├── include
            │   └── ...
            └── share
                └── ...
    
  6. 新增環境變數

    為了方便並優先使用 Python 3.7 的命令,把/usr/python37/bin

    目錄新增到 PATH。

    • 開啟全域性環境變數配置檔案
    sudo vim /etc/profile
    
    • 新增下面程式碼到/etc/profile配置檔案
    # 把 /usr/python37/bin 放在前面, 優先使用裡面的命令
    export PATH=/usr/python37/bin:$PATH
    
    • 執行 source 命令,讓剛配置的環境變數立即生效
    source /etc/profile
    # 檢視環境變數
    echo $PATH
    /usr/python37/bin:
    
    • 檢視版本
    python3 -V
    pip3 -V
    
  7. 配置pip

    • 首次更換,需建立pip.conf檔案:
    mkdir ~/.pip
    cd ~/.pip
    touch pip.conf
    
    • 編輯pip.conf檔案:
    sudo gedit ~/.pip/pip.conf
    
    • 開啟pip.conf檔案視窗,將以下內容複製到檔案中:
    [global]
    index-url = http://pypi.douban.com/simple
    [install]
    trusted-host=pypi.douban.com
    

異常記錄

當未完成步驟3時,在生成makefile檔案時會出現異常,如下:

參考文件:

https://www.cnblogs.com/cnhope/p/13073030.html
https://blog.csdn.net/xietansheng/article/details/84791703