iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
Cloud Native

docker系列 第 10

Day10 python pip 介紹&虛擬環境

  • 分享至 

  • xImage
  •  

pip 介紹

pip 是 Python 標準庫管理器,也就是一個工具讓你可以藉由網際網路把前人寫的函式庫下載並安裝

pip 功能

pip的基本功能就是安裝套件,首先確定要安裝什麼套件在輸入以下指令即可,在這先以flask為例子

$ pip install flask
Collecting flask
  Downloading Flask-2.2.1-py3-none-any.whl (101 kB)
     ---------------------------------------- 101.5/101.5 kB 1.2 MB/s eta 0:00:00
Requirement already satisfied: Jinja2>=3.0 in c:\users\alber\appdata\local\programs\python\python310\lib\site-packages (from flask) (3.1.2)
Requirement already satisfied: itsdangerous>=2.0 in c:\users\alber\appdata\local\programs\python\python310\lib\site-packages (from flask) (2.1.2)
Requirement already satisfied: click>=8.0 in c:\users\alber\appdata\local\programs\python\python310\lib\site-packages (from flask) (8.1.3)
Collecting Werkzeug>=2.2.0
  Downloading Werkzeug-2.2.1-py3-none-any.whl (232 kB)
     ---------------------------------------- 232.4/232.4 kB 2.4 MB/s eta 0:00:00
Requirement already satisfied: colorama in c:\users\alber\appdata\local\programs\python\python310\lib\site-packages (from click>=8.0->flask) (0.4.5)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\alber\appdata\local\programs\python\python310\lib\site-packages (from Jinja2>=3.0->flask) (2.1.1)
Installing collected packages: Werkzeug, flask
  Attempting uninstall: Werkzeug
    Found existing installation: Werkzeug 2.1.2
    Uninstalling Werkzeug-2.1.2:
      Successfully uninstalled Werkzeug-2.1.2
Successfully installed Werkzeug-2.2.1 flask-2.2.1

就這樣pip會把相依的套件一並安裝進來

如果想了解自己電腦裝了哪些使用pip所安裝的套件在輸入以下指令就能取得到你安裝的套件有哪些以及對應的版本

$ pip list
Package          Version
---------------- ---------
autopep8         1.6.0
certifi          2022.6.15
click            8.1.3
colorama         0.4.5
distlib          0.3.4
filelock         3.7.1
Flask            2.1.2
itsdangerous     2.1.2
Jinja2           3.1.2
MarkupSafe       2.1.1
pip              22.2.2
pipenv           2022.7.4
platformdirs     2.5.2
pycodestyle      2.8.0
setuptools       63.2.0
six              1.16.0
toml             0.10.2
virtualenv       20.15.1
virtualenv-clone 0.5.7
Werkzeug         2.1.2

如果想要告訴其他使用者你所開發的程式需要什麼套件可以透過以下指令輸出相依套件清單

$ pip freeze > requirements.txt

這樣就可以把相依函式庫輸出到requirements.txt內,如果有乾淨環境需要開發該專案只要執行以下指令即可安裝相依函式庫

$ pip install -r requirements.txt

當你不需要這個套件或是覺得太佔空間時,輸入以下指令即可刪除該套件,一樣先以flask為例

$ pip uninstall flask
Found existing installation: Flask 2.1.2
Uninstalling Flask-2.1.2:
  Would remove:
    c:\users\alber\appdata\local\programs\python\python310\lib\site-packages\flask-2.1.2.dist-info\*
    c:\users\alber\appdata\local\programs\python\python310\lib\site-packages\flask\*
    c:\users\alber\appdata\local\programs\python\python310\scripts\flask.exe
Proceed (Y/n)? y
  Successfully uninstalled Flask-2.1.2

在刪除的時候,會在詢問你一次,確認你是否要刪除此套件,如果真的刪除了,可以再透過 pip install 在安裝回來就行了

python 虛擬環境

虛擬環境就是一種獨立的開發環境,它隔離了不同專案在開發上相互依賴的關係,可以避免再同時開發多項專案時,因為需要的同一套件版本不相同,而造成衝突。

venv

Python 內建的建立虛擬環境的方式(Python 3.6 and later)。

建立虛擬環境

# 指令
$ python -m venv <env_name>

# 範例
$ python -m venv py39
$ python -m venv virtualenv

執行完就會在此目錄底下建立一個虛擬環境的資料夾。

開啟虛擬環境

# 開啟虛擬環境
$ <env_name>\Scripts\activate.bat

# 退出虛擬環境
$ <env_name>\Scripts\deactivate.bat

進入虛擬環境中就可以使用 pip 安裝套件,避免環境衝突了。

移除虛擬環境

只要把資料夾刪除就行了

pipenv

pipenv 是第三方的虛擬環境套件,需要在基礎環境透過上一篇提到的 pip 安裝套件之後,才能建立新的虛擬環境。pipenv 會在開啟虛擬環境時,同時載入 .env 檔設為環境變數,而且在安裝套件時是使用並行安裝。

$ pip install pipenv

建立虛擬環境

# 不指定版本 指令
$ pipenv --three

# 指定版本 指令
$ pipenv --python 3.9

會在使用者家目錄底下的 .virtualenv 目錄下面建立虛擬環境,並在此目錄底下建立 Pipfile 檔。

開啟虛擬環境

# 開啟虛擬環境
$ pipenv shell

# 透過虛擬環境執行指令
$ pipenv run <cmd>

# 安裝套件
$ pipenv install <package_name>

# 安裝 requirements.txt 內的所有套件
$ pipenv install -r requirements.txt

# 查看安裝的套件
$ pipenv graph

# 退出虛擬環境
$ exit

移除虛擬環境

$ pipenv --rm

上一篇
Day9 Python 條件選擇&函數
下一篇
Day11 DockerFile 1
系列文
docker30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言