1. 程式人生 > 實用技巧 >Ubuntu 多版本 Python安裝 pip 及 pip版本管理

Ubuntu 多版本 Python安裝 pip 及 pip版本管理

ubuntu 中存在多個版本的 Python,本文解決如何安裝和使用多個版本的 Python 對應的 pip

1. 安裝 pip 包

  • python3.8為例

    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    
    # 安裝對應版本 pip
    python3.8 get-pip.py
    

    注意,此時終端會發出警告:

    • WARNING: The scripts pip, pip3 and pip3.8 are installed in '/home/chang/.local/bin' which is not on PATH.
      Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
    • 環境變數的操作基於此警告
    pip3.8 -V
    

    pip3.8: command not found

    pip3 -V  # 會輸出 ubuntu18.04 預設安裝的版本
    

    pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

2. 配置 pip 環境變數

  • 當前使用者
    gedit ~/.bashrc
    # 在檔案最後新增路徑,該路徑來源於第一步中安裝 pip 時發出的警告
    export PATH=/home/chang/.local/bin:$PATH
    source ~/.bashrc
    
    驗證是否配置成功:
    pip3.8 -V
    

    此時輸出: pip 20.3.3 from /home/chang/.local/lib/python3.8/site-packages/pip (python 3.8)
    而 pip3 仍是安裝 ubuntu 時預設的 python3.6

  • root 使用者
    此時輸入 sudo pip3.8 -V 仍會提示找不到命令。
    這是因為 sudo 在切換成 root 使用者的時候,env 並不會去保留這些環境變數,需要特別指明才可以
    sudo gedit /etc/sudoers
    
    在 secure_path 變數里加上 /home/chang/.local/bin
    # 不要直接 copy
    Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/chang/.local/bin"
    

    此時再在終端使用 sudo pip3.8 會與當前使用者一致

參考

  1. https://zhuanlan.zhihu.com/p/37473690