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



前言

  • 從 medium 搬過來新站這邊,並陸續更新了一些細節

  • medium 那邊這年後會陸續刪除。

  • Python 3.4 與 Python 2.7.9 之後安裝包都有內建 pip 了,可以不用另外安裝

  • 更多 pip 資訊可以參考:pip 使用指南pip 疑難雜症

  • 以下原來的文章供參考




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




Step 0:hen 重要

  • Windows 先安裝 Python

  • CentOS 內建 2.6.x 或 2.7.x 版

    • 若要用 3.7.x 版要另行安裝:自己 compile 可參考這篇
  • 如果有機會連網的話 (但是是 python 3.6):

1
2
sudo yum install epel-release 
sudo yum install python3

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

# Windows 10
#  └─ Python 3.7
#
# 更新版本號 2019-07-27 (之前是用 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 後執行:

1
2
C:\> cd  <get-pip.py 所在路徑>
C:\> python get-pip.py
ERROR!

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

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


Windows get pip (offline)

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

我說真的。

反正就是想辦法拿到 get-pip.py 丟進系統就對了。


CentOS get pip (Online)

  1. 要先確定環境是否有 epel repo,下一步才能直接用 yum 安裝:
1
sudo yum install epel-release
  1. 拿到 get-pip.py
1
sudo yum install -y <strong><em>python-pip</em></strong>

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

  • 先安裝 Python 3.x

  • pip module 的名稱要改成:

1
sudo yum install -y <strong><em>python3-pip</em></strong>

CentOS get pip (Offline)

  1. 離線安裝就比較麻煩一點,首先要先拿到 pip-19.2.1-py2.py3-none-any.whl (之前還是 pip9 現在已經 19 了…),可在這裡下載

  2. 然後用任何方式上傳到你的主機,你可以從本機上傳、或到可連網的主機 wgetscp 過來;拿到檔案後 cd 到該路徑。

  3. 執行以下指令,用自己安裝自己 (注意對應版本)

1
python pip-<strong><em>19.2.1</em></strong>-py2.py3-none-any.whl/pip install --no-index pip-<strong><em>19.2.1</em></strong>-py2.py3-none-any.whl
# 更新版本號 2019-07-27

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




Step 2:使用 pip 安裝 python module

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

Windows (Online):

進入 CMD 後輸入:

1
C:\> python -m pip install <strong><em><your_module_name></em></strong>

Windows (Offline):

進入 CMD 後輸入:

1
C:\> python -m pip install <strong><em>\path\to\your\wheel\file</em></strong>

CentOS (Online):

1
pip install <strong><em><your_module_name></em></strong>

CentOS (Offline):

1
pip install <strong><em>/path/to/your/wheel/file</em></strong>



補充:

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

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

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

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

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

1
pip install *.whl

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





2. Windows 環境變數的部分

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

  • 右鍵點擊 [本機] → [內容] → [進階系統設定] → [環境變數]

  • 或是以系統管理員身分進入 CMD (Ctrl+Shift+Enter):

然後輸入這行捷徑:

1
2
3
4
5
C:\> rundll32 sysdm.cpl,EditEnvironmentVariables


# 完整指令
<meta charset="utf-8">C:\> "C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables

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

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

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

你說 Python 路徑在哪裡?

Source

如果不在以下這兩個地方,可能你在裝 Python 的時候有什麼誤會,就只能另外在「開始」或用搜尋工具找囉。

1
C:\Python36

OR

1
C:\Users\<your_user_name>\AppData\Local\Programs\Python\Python36

建議未來安裝 python 的時候可以選 Customize 客製化安裝,這樣可以確保你知道你把它裝在哪裡。





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

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

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

1
DataPath = D:\mydata\

每個人的資料路徑 (DataPath) 都不一樣,我說我的在 _D:\mydata_,你的可能叫做 _D:\alldata_。

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

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

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




REF

  1. Python 官網pip 官網

  2. Python windows 安裝路徑

  3. 直接開啟環境變數視窗:

1. [https://serverfault.com/questions/351129/can-the-environment-variables-tool-in-windows-be-launched-directly](https://serverfault.com/questions/351129/can-the-environment-variables-tool-in-windows-be-launched-directly)

2. [https://superuser.com/questions/651039/how-to-get-to-environment-variables-from-run](https://superuser.com/questions/651039/how-to-get-to-environment-variables-from-run)
  1. 我覺得很神的 CentOS 離線安裝 pip
Licensed under CC BY-NC-SA 4.0
最後更新 2024-05-28 06:37

主題 StackJimmy 設計