Python 可以建立虛擬環境,其中 pipenv 是個流行的工具。在運作過程中,需要知道目前的 Python 版本或是套件版本,以利建立開發環境或是解決問題,可以是要如何取得這些資訊呢?
本篇就會說明,如何取得 pipenv 所建立的 Python 環境之版本,以及其安裝的套件版本。
Python版本:
- 3.9
- 3.10
使用 pipenv
可以指定 Python 版本,也可以管理要使用的套件(package)的版本,然而時間久了就忘記是使用哪些版本,因此在這邊會說明如何取得各個的版本資訊。
取得 Python 版本
在使用Python --version
可以取得 Python 版本,但這個版本是當下呼叫Python
時會使用的版本,與我們在pipenv
虛擬環境中要用的是指不同的東西。
如果要取得pipenv
中的 Python 版本,可以進入 Python 虛擬環境中:
pipenv shell
接著執行在該環境中的 Python 版本查詢,也就是使用:
python --version
取得套件的版本
知道所使用的 Python 版本後,想要知道在這個環境底下所安裝的套件有哪些,並且他們的版本為何,有幾個方法可以查詢。
從 Pipfile 檔取得資料
使用pipenv
的時候會自動產生記錄著版本與套件資訊的檔案「Pipfile」,裡面就記錄著 Python 版本和所要用的套件及其版本。
也許會有疑問,那直接看這份檔案就可以,為什麼還要有那麼多的查詢方式呢?因為有這份Pipfile,並不代表你的環境就是符合檔案紀錄,尤其是協作、網路上抓 repo 下來的,可能與自己本身的環境不一樣,尤其是 Python 的版本。像是有遇到在Pipfile檔案中寫著3.9
,但本機環境只有3.10
,因此執行為3.10
,這時候Pipfile就失準了(當有設定好Pipfile時,以Pipfile為準最為方便)。
內容可能呈現為:
[packages]
requests = "*"
pandas = "*"
python-dateutil = "*"
pymysql = "*"
[dev-packages]
black = "*"
[requires]
python_version = "3.9"
使用 pip freeze
在pipenv
虛擬環境中,也就是使用pipenv shell
,這時使用指令:
pip freeze
就可以看到所安裝好的套件版本囉!
內容可能呈現為:
black==22.3.0
certifi==2021.10.8
charset-normalizer==2.0.12
click==8.1.2
idna==3.3
mypy-extensions==0.4.3
numpy==1.22.3
pandas==1.4.2
pathspec==0.9.0
platformdirs==2.5.2
PyMySQL==1.0.2
python-dateutil==2.8.2
pytz==2022.1
requests==2.27.1
six==1.16.0
tomli==2.0.1
typing_extensions==4.2.0
urllib3==1.26.9
使用 pip list
同樣的在 pipenv shell 中啟動虛擬環境,接著在此環境下使用:
pip list
就可以得到所有套件及其版本資訊。
內容可能呈現為:
Package Version
------------------ ---------
black 22.3.0
certifi 2021.10.8
charset-normalizer 2.0.12
click 8.1.2
idna 3.3
mypy-extensions 0.4.3
numpy 1.22.3
pandas 1.4.2
pathspec 0.9.0
pip 21.2.4
platformdirs 2.5.2
PyMySQL 1.0.2
python-dateutil 2.8.2
pytz 2022.1
requests 2.27.1
setuptools 57.5.0
six 1.16.0
tomli 2.0.1
typing_extensions 4.2.0
urllib3 1.26.9
wheel 0.37.0
使用 pipenv graph
如果直接使用pipenv graph
,則不需要進入虛擬環境中,可以直接直到安裝的套件與版本,並且用組合的形式呈現,可以快速的看出來其相依性。
內容可能呈現為:
black==22.3.0
- click [required: >=8.0.0, installed: 8.1.2]
- mypy-extensions [required: >=0.4.3, installed: 0.4.3]
- pathspec [required: >=0.9.0, installed: 0.9.0]
- platformdirs [required: >=2, installed: 2.5.2]
- tomli [required: >=1.1.0, installed: 2.0.1]
- typing-extensions [required: >=3.10.0.0, installed: 4.2.0]
pandas==1.4.2
- numpy [required: >=1.18.5, installed: 1.22.3]
- python-dateutil [required: >=2.8.1, installed: 2.8.2]
- six [required: >=1.5, installed: 1.16.0]
- pytz [required: >=2020.1, installed: 2022.1]
PyMySQL==1.0.2
requests==2.27.1
- certifi [required: >=2017.4.17, installed: 2021.10.8]
- charset-normalizer [required: ~=2.0.0, installed: 2.0.12]
- idna [required: >=2.5,<4, installed: 3.3]
- urllib3 [required: >=1.21.1,<1.27, installed: 1.26.9]
結尾
在撰寫程式前,主要是設定好開發環境,常常會遇到環境的版本不一致,或是某些套件相依的版本需要調整,這時候就需要這些版本資訊。而取得相關方法很多,僅列出常見的幾個,如果還有看到一些比較好用的方法,會在記錄下來~
~Copyright by Eyelash500~
IT技術文章:EY*研究院
iT邦幫忙:eyelash*睫毛
Blog:睫毛*Relax
Facebook:睫毛*Relax