Python安裝及包管理

双生介發表於2024-06-25

本文將主要就Windows作業系統和Linux作業系統中python的安裝以及包管理相關操作進行說明。

Windows作業系統的Python安裝

Python安裝

安裝純Python是個人相對來說更推薦的方法。相較於Anaconda體積更小,使用命令直接操作也比較便捷。而且Anaconda存在商用版本和社群版的區別,雖然對個人開發者和研究人員可以使用社群版,但相較於Python而言存在一定的法律風險。而且Anaconda所佔的硬碟空間也較多。總之我的評價是依託答辯,即便它算是Python最成功的包管理及Python環境管理軟體。

首先,Python的安裝包可以從下面的連結處下載:

  • Python安裝包

請務必注意,雖然Windows自帶的 Microsoft Store 中也可以搜到Python,但是一定不要從裡面安裝!!!

另外,雖然Windows現在可以使用winget進行類似Linux的軟體安裝,但是由於使用winget安裝python其預設的安裝路徑不可控,因此不推薦使用。

確定Python版本

在該頁面下可以找到Python到目前為止的所有Windows系統的安裝包。可以在該頁面安裝一些已經被Python官方停止支援的Python版本(部分專案會用到非最新的Python,有些上古專案甚至可能用到Python2)。

選擇Python版本的時候可以選擇一個與專案組匹配的Python版本,如果只是自學也可以只安裝最新的Python版本(一般儘量選擇穩定版本)。

選擇完版本號後,還需要根據電腦的處理器架構選擇正確的處理器版本。

在此以Python 3.12.4為例,一般選擇 Windows installer(64-bit) ,點選後即開始下載。

安裝

由於本人已經安裝過Python3.12,故後續以Python3.11做示例,一般來說Python的安裝過程不會因版本變化產生較大差別。

  1. 以管理員身份執行安裝程式,將兩個核取方塊勾選後點選Customize installation

  1. 除 for all user之外全部勾選,點選Next

  1. 勾選紅框框中的4個核取方塊,並修改安裝路徑

由於本人使用的Python版本較少且C盤容量夠大,一般建議在非系統盤的根目錄建立單獨的Python資料夾,在Python資料夾下再單獨存放不同版本的Python。下面是一個示例

D:\Python
	├─Python311
	├─Python312
	├─........
	└─Python38

舉個例子,本次安裝的Python 3.11,在Customize install location中需要填入:

D:\Python\Python311

點選Install即可完成安裝。

安裝後的確認

按Win鍵搜尋Powershell,輸入Python,如果能夠正確輸出如圖的版本號則安裝成功。

若安裝正確,則關閉當前視窗,或輸入下面命令回車,即可退出。

quit()

如果未正確輸出,請檢視下一節中關於環境變數的說明進行修改。

多版本Python的安裝及管理

如果需要安裝多個版本的Python,一般按照上述內容,重複 確定Python版本 --> 安裝即可。

但是多個Python包安裝後,其Python直譯器的啟動檔案都叫python.exe,且這些多個版本的Python都在安裝的時候選擇了將各版本的python註冊到系統的環境變數中。如果繼續在Powershell中使用python來呼叫python可能就不能找到所需的Python版本。其解決方法已經被Python內建(安裝時選擇的 py launcher),其呼叫方法如下:

py

輸入該指令後,py launcher將從系統環境變數中查詢安裝的Python版本。如果沒有任何的引數輸入,將呼叫預設的Python版本。

設定Python的預設版本的方法如下:

  1. 按win鍵搜尋 “環境變數”
  2. 在彈出的視窗點選“環境變數(N)”

  1. 如果在安裝的時候沒有勾選 Install Python for all users,則python的環境變數應儲存在上半框中的Path中;如果安裝的時候勾選了Install Python for all users,則python的環境變數應儲存在下班框中的Path中。(是否勾選需要所有python版本在安裝時保持一致)
  2. 雙擊Path變數,可以看到如下介面。以下圖為例,可以看到本機共安裝了 Python 3.12 和 Python 3.11 兩個版本,且Python3.12的兩個相關變數位於Path中更靠前的位置。假設本機只安裝了這兩個Python版本,Path變數這樣的排列這意味著:在這臺機器如果使用只使用 py 指令而不加任何其他引數,系統將優先呼叫3.12版本的Python(直接輸入python也將呼叫3.12版本)。如果需要將3.11設定為預設版本,則需要分別選中python311的兩個相關路徑,點選右側的 Move Up,讓兩個python311變數均在python312之前,並點選ok進行儲存(三層都要點ok),儲存完後關閉已開啟的powershell重新開啟,輸入py 或者python就會呼叫3.11版本的Python。

對於安裝之後在Powershell中輸入python無反應的情況,需要在上圖所示介面將python路徑加入:

  1. python.exe所在的路徑

  1. pip.exe所在路徑:python.exe所在路徑的基礎上加上"PYTHON_PATH\Scripts"

關於py的使用下面給一個較為簡單的說明:

檢視當前已成功安裝的python版本:

pip --list

使用該命令後,輸出的log如下:

可以看到,示例電腦共安裝了3.12、3.11、3.8三個python版本。想要呼叫具體版本的python,使用下面的命令:

py -V:VERSION

下面給三個具體的示例:

關於py指令的更多使用方法,使用如下命名檢視:

py --help

pip包管理

一般來說,很多python教程都會在安裝包的時候建議直接輸入下列命令進行包的安裝:

pip install PACKAGENAME

#If above command can't install package, use the command below
python -m pip install PACKAGENAME

#Recommend command
py -V:VERSION -m pip install PACKAGENAME

但是如果使用這個方法安裝所有包,在不同的專案中很容易因為包過多、每個包之間的依賴關係等問題帶來問題。因此強烈不建議使用pip安裝所有的包。

但是,還是需要使用pip安裝一些基礎支援包和環境。

建議安裝的包如下:

Package Name Description
wheel 安裝類似Numpy之類的使用.whl格式的Python包
pipenv Python虛擬環境管理包

除這兩個包之外,其他所有包都不建議直接使用pip安裝,而是使用pipenv建立虛擬環境後在各專案的虛擬環境中單獨安裝。

安裝上述的這兩個包,請在Powershell中下面的兩個命令:

#Install wheel
pip install wheel
#If above command can't install package, use the command below
python -m pip install wheel
#Recommend command
py -V:VERSION -m pip install wheel

#Install pipenv
pip install pipenv
#If above command can't install package, use the command below
python -m pip install pipenv
#Recommend command
py -V:VERSION -m pip install pipenv

安裝完成後,在Powershell中輸入下一條命令:

pip list
#If above command can't install package, use the command below
python -m pip list
#Recommend command
py -V:VERSION -m pip list

輸出的log如下所示:

版本不需要與此處所示的版本相同,只需要保證包已安裝完成即可。

後續操作請轉到共用操作出檢視pipenv的具體使用及pip的相關指令。

Linux安裝Python

Python安裝

對於初次使用Linux使用的新手,不建議上來就開始配置多版本的Python環境,本文將只對單版本的Python安裝進行解釋。

一般的Linux發行版都會預裝python,對於Linux可以先直接在bash中輸入:

python3

檢視是否安裝了python,如果沒有類似Windows的python環境顯示出來,則需要使用下列命令進行安裝(需要注意的時,接下來的操作都將使用到管理員許可權,沒有管理員密碼將無法操作):

#Debian \ Ubuntu
sudo apt-get install python3

#Arch Linux
sudo pacman -S python3

#Red Hat / Cent OS
sudo yum -y install python3

Linux 發行版一般不會預裝pip,需要手動安裝,安裝pip的指令如下:

#Debian \ Ubuntu
sudo apt-get install python3-pip

#Arch Linux
sudo pacman -S python3-pip

#Red Hat / Cent OS
sudo yum -y install python3-pip

Linux環境下的Python包管理

與Windows使用pip直接安裝包不同,Linux中Python包採用的不同的發行策略,一般都需要使用系統的包管理軟體進行安裝。因此,安裝pipenv和wheel需要使用對應的包管理軟體指令進行安裝。

#Debian \ Ubuntu
sudo apt-get install pipenv python3-wheel

#Arch Linux
sudo pacman -S pipenv python3-wheel

#Red Hat / Cent OS
sudo yum -y install pipenv python3-wheel

安裝完後,就可以使用pipenv進行環境配置了。

pipenv & pip

pipenv

pipenv是一個非常好用的python虛擬環境配置工具。這個工具可以實現為不同的工程設定不同的python版本、不同的python包依賴環境。同時對於Linux來說,還可以使用pip在虛擬環境中安裝所需的python包,使得在Linux中需要使用的命令與Windows環境基本一致。

pipenv的官網如下:

  • pipenv

pipenv的中文文件如下:

  • pipenv 中文文件

關於pipenv的所有文件和操作說明都在該網站。或者也可以在Powershell或者bash中輸入下面的命令以得到一些基礎引數的提示:

pipenv --help

該命令的輸出log如下:

Usage: pipenv [OPTIONS] COMMAND [ARGS]...

Options:
  --where                         Output project home information.
  --venv                          Output virtualenv information.
  --py                            Output Python interpreter information.
  --envs                          Output Environment Variable options.
  --rm                            Remove the virtualenv.
  --bare                          Minimal output.
  --man                           Display manpage.
  --support                       Output diagnostic information for use in
                                  GitHub issues.
  --site-packages / --no-site-packages
                                  Enable site-packages for the virtualenv.
                                  [env var: PIPENV_SITE_PACKAGES]
  --python TEXT                   Specify which version of Python virtualenv
                                  should use.
  --clear                         Clears caches (pipenv, pip).  [env var:
                                  PIPENV_CLEAR]
  -q, --quiet                     Quiet mode.
  -v, --verbose                   Verbose mode.
  --pypi-mirror TEXT              Specify a PyPI mirror.
  --version                       Show the version and exit.
  -h, --help                      Show this message and exit.


Usage Examples:
   Create a new project using Python 3.7, specifically:
   $ pipenv --python 3.7

   Remove project virtualenv (inferred from current directory):
   $ pipenv --rm

   Install all dependencies for a project (including dev):
   $ pipenv install --dev

   Create a lockfile containing pre-releases:
   $ pipenv lock --pre

   Show a graph of your installed dependencies:
   $ pipenv graph

   Check your installed dependencies for security vulnerabilities:
   $ pipenv check

   Install a local setup.py into your virtual environment/Pipfile:
   $ pipenv install -e .

   Use a lower-level pip command:
   $ pipenv run pip freeze

Commands:
  check         Checks for PyUp Safety security vulnerabilities and against
                PEP 508 markers provided in Pipfile.
  clean         Uninstalls all packages not specified in Pipfile.lock.
  graph         Displays currently-installed dependency graph information.
  install       Installs provided packages and adds them to Pipfile, or (if no
                packages are given), installs all packages from Pipfile.
  lock          Generates Pipfile.lock.
  open          View a given module in your editor.
  requirements  Generate a requirements.txt from Pipfile.lock.
  run           Spawns a command installed into the virtualenv.
  scripts       Lists scripts in current environment config.
  shell         Spawns a shell within the virtualenv.
  sync          Installs all packages specified in Pipfile.lock.
  uninstall     Uninstalls a provided package and removes it from Pipfile.
  update        Runs lock, then sync.
  upgrade       Resolves provided packages and adds them to Pipfile, or (if no
                packages are given), merges results to Pipfile.lock
  verify        Verify the hash in Pipfile.lock is up-to-date.

一般來說,比較常用的命令有:

#Use Default python version to create a virtual enviroment
pipenv install

#Use python VERSION to create a virtual enviroment
pipenv --python VERSION

#Open a shell in virtual enviroment
pipenv shell

#Already used "pipenv shell" command, want to quit this virtual enviroment
exit

#Remove virtual enviroment in current path
pipenv -rm

#Show all package in this virtual enviroment
pipenv graph

其中需要特別提出的是,當使用了"pipenv shell"命令後,只要還沒有使用"exit",則在該環境中可以使用pip安裝python包(不論是Windows還是Linux)。

此處列出的僅僅只是pipenv極基礎的用法,更多用法建議參考pipenv手冊(Linux中使用 "man pipenv"或檢視本節中列出的兩個連結)。

pip

上文實際上已經提及了pip的安裝命令,本節將主要就pip安裝包、解除安裝包、更新包、匯出當前依賴包列表、pip自更新進行解釋。

#Install a package
#Only recommend in a virtual enviroment
pip install PACKAGENAME

#Uninstall a package
#Only recommend in a virtual enviroment
pip uninstall PACKAGENAME

#List all package in current enviroment
pip list
#For a specific version python 
py -V:VERSION -m pip list

#Only recommend in a virtual enviroment
python -m pip install –-upgrade PACKAGENAME

#Update pip
py -V:VERSION -m pip --uppgrade pip

#Freeze current pip package enviroment in requirements.txt at CURRENT PATH
#Only recommend in a virtual enviroment
#Use "pipenv shell" before using this command
pip freeze > requirements.txt

#Unfreeze a pip package enviroment from requirements.txt at CURRENT PATH
#Only recommend in a virtual enviroment
#Use "pipenv shell" before using this command
pip install -r requirements.txt

#For help
pip --help

上面已經包含了一些常用的pip命令。這些命令不強求需要記住,只需要有一個大概的瞭解。在使用PyCharm進行開發的時候這些操作都可以使用圖形化介面進行配置。但是還是需要有個印象,因為如果不使用PyCharm等現代IDE做專案開發的時候,或者極小可能的情況下IDE或網路抽風的情況下,只能使用命令列做應急的時候還是需要這些命令的。

轉載請註明原作者

Copyright@Gaoxz

相關文章