Python: 安裝 pip 於 Windows 或 CentOS & 線上/離線安裝 (pip 101)

今天在客戶端的 CentOS 6 離線安裝了 pip,一定要紀錄一下,不然每次換新環境要用 Python pip 都搞好久。

Step 0:hen 重要

  • Windows 先安裝 Python (鄉民都唸 Python)
  • CentOS 都內建 2.6.x 或 2.7.x 版了;若要用 3.6.x 版要另行安裝。

我習慣用 Python 3.6;附上這篇的系統資訊:

# Windows 10
# └─ Python 3.6

# CentOS 6
# └─ Python 2.6
# CentOS 7
# └─ Python 2.7

Step 1:安裝 pip

- Windows get pip (Online)

  1. 拿到 get-pip.py
    你可以:google “get-pip py”,或是直接下載
  2. 進入 CMD,cd get-pip.py 所在路徑後執行:
    python get-pip.py
ERROR!

如果有錯誤、 CMD 跟你說找不到 python 這個指令在哪裡,那就是因為環境變數未設定好的關係,請參考最下面的環境變數設定

設定完成後,如果在 CMD 裡面輸入 python 能成功執行的話就沒問題了。

- Windows get pip (offline)

  1. 連上 Wi-fi 或是插網路線,然後參考上方 Windows pip (Online)

我說真的。

- CentOS get pip (Online)

  1. 拿到 get-pip.py
yum install -y python-pip

如果你執意要在 CentOS 上裝 Python3.x 的 pip,那就必須

  • 先安裝 Python 3.x (3.6)
  • pip module 的名稱要改成:
yum install -y python3-pip

- CentOS get pip (Offline)

  1. 離線安裝就比較麻煩一點,首先要先拿到 pip-9.0.1-py2.py3-none-any.whl (版本可能會有變動),可在這裡下載
  2. 然後用任何方式上傳到你的主機,你可以從本機上傳、或到可連網的主機 wget 再 scp 過來;拿到檔案後 cd 到該路徑。
  3. 執行以下指令,用自己安裝自己 (注意對應版本)
python pip-9.0.1-py2.py3-none-any.whl/pip install --no-index pip-9.0.1-py2.py3-none-any.whl

儘管提出這個用法的大神說如果有錯誤要另尋他路,但目前測下來沒什麼大問題。


Step 2:使用 pip 安裝 python module

有了 pip 之後要安裝其他 python 的套件就方便多了。

Windows (Online):

進入 CMD 後輸入:
python -m pip install (your_module_name)

Windows (Offline):

進入 CMD 後輸入:
python -m pip install \path\to\your\wheel\file

CentOS (Online):

pip install (your_module_name)

CentOS (Offline):

pip install /path/to/your/wheel/file

補充:在線上直接打包相關 .whl 檔供離線安裝

當你已經安裝好 pip,可是主機環境都是離線的狀況下 (例如機房),要如何快速安裝想要的 module?

你可以在可連網的電腦上使用以下指令 (Windows 前面要加上 python -m):

pip download -d /path/to/store/wheel (your_module_name)

指令下下去之後,你指定的路徑就會放你需要的 .whl 了,之後再到對應路徑用

pip install *.whl

就能順利離線安裝其他你要的 module 了。


Windows 環境變數的部分

為了將 python 加到環境變數,你可以如一般的教學:

  • 右鍵點擊 [本機] → [內容] → [進階系統設定] → [環境變數]
  • 或是以系統管理員身分進入 CMD (Ctrl+Shift+Enter):

然後輸入這行捷徑:

rundll32 sysdm.cpl,EditEnvironmentVariables

不過相信我,這沒有比較快。

開啟環境變數視窗後,找到 [系統變數] → 雙擊 [path],

再將 Python 的路徑貼到系統變數的 path 裡面即可。

你說 Python 路徑在哪裡?

Source

如果不在以下這兩個地方,可能你在裝 Python 的時候有什麼誤會,就只能另外搜尋囉。

  • C:\Python36
  • C:\Users\(Your logged in User)\AppData\Local\Programs\Python\Python36

什麼是環境變數?為什麼要設定環境變數?

環境變數簡單來說就是提供系統、或一般的應用程式運作時使用的參數。

舉例來說,給定一個虛構的路徑 D:\mydata\ 並叫它 DataPath

DataPath = D:\mydata\

每個人的資料路徑 (DataPath) 都不一樣,我說我的在 D:\mydata\,你的可能叫做 D:\alldata\

如果程式把他寫死、統一都由 D:\ mydata\ 出發,萬一你電腦的資料路徑長得不一樣,就無法在你的電腦執行、全部跳錯了。

因此,為了確保程式能正常運作,我只要在程式裡面寫 DataPath,至於實際上的環境 DataPath 究竟在哪裡,到時候再由系統給定環境變數就可以正常運作了。

詳細介紹可參考這篇比較詳細的說明。