作為 Python 項目開發的必備工具,虛擬環境一般都是我們第一選項。Pipfile 作為一個基於 Pip 的虛擬環境管理工具,非常適合 Python 的包管理。
一、pipfilepro
Pipfile 是一個高級的工具,它在安裝、升級、卸載、管理項目中的依賴關係等方面都有很好的表現力。如果你不能或不想使用 Docker 等工具,Pipfile 可以幫助你輕鬆完成依賴管理。
有些人可能還需要根據生產環境和開發環境進行依賴的區分,這時候就可以使用 Pipfile.lock 文件,來確保項目中使用的依賴關係的一致性和兼容性。
二、pipfile生成
生成 Pipfile 很簡單,只需要在 Python 項目的根目錄下運行以下命令:
pipenv install
這個命令將按照項目中 requirements.txt 中的依賴關係安裝並生成 Pipfile 文件。同時,Pipfile 也將自動記錄項目中使用的虛擬環境,以及用來安裝和管理依賴關係的 Pip 版本。
三、pipfile文件
Pipfile 文件和 requirements.txt 文件類似,它是一個以 UTF-8 編碼的文本文件,可以手動編輯和維護。Pipfile 文件可以包含幾個不同的部分:
[packages]
:這個部分包含需要安裝的包,以及它們的版本號[dev-packages]
:這個部分包含需要安裝的開發依賴包,比如 lint 和 test frameworks。[requires]
:這個部分包含 Python 版本和其它依賴項,比如操作系統或者其它 python 版本。
下面是一個示例 Pipfile 文件:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[packages]
django = "==2.2"
Django REST framework = "==0.1"
[dev-packages]
pytest = "==4.0.1"
[requires]
python_version = "3.8"
四、pipfile文件在哪
我們可以通過以下命令來確定項目的根目錄位置:
pipenv --where
命令的執行結果將輸出項目所在路徑:
/Users/writing/Project/python-project
其中,Pipfile 和 Pipfile.lock 文件將在此目錄中找到。
五、pipfile.lock
Pipfile.lock 文件是兩個重要文件中的另一個,它用來鎖定項目中使用的依賴關係的版本。這個文件應該被添加到版本控制系統中,以便為所有的開發人員提供一致的依賴環境。
Pipfile.lock 文件是通過以下命令生成的:
pipenv lock
其中,鎖定的依賴項和其版本應寫入 Pipfile.lock 文件,而不是 Pipfile 文件中,請注意不要手動編輯 Pipfile.lock 文件。
六、pipfile中的requires選項
Pipfile 中的 requires 選項指定了 Python 版本和其它依賴項,如下所示:
[requires]
python_version = "3.8"
os_name = "posix"
它表示該項目需要 Python 3.8 及以上版本,及基於 Unix 的操作系統。
七、使用 Pipenv 進行包管理
使用 Pipenv,我們可以通過以下命令來安裝一個包:
pipenv install requests
如果我們需要安裝指定版本的包,可以在包名後面加上版本號:
pipenv install requests==2.25.1
在 Pipfile 文件中,可以看到 requests 包已被添加到 [packages] 節點中,同時 Pipfile.lock 會記錄實際安裝包的版本。
使用以下命令可以查看所有已安裝的包:
pipenv graph
這個命令將輸出包的依賴關係樹,以及它們的版本號,非常直觀。
Pipenv 也提供了方便的命令,讓我們可以方便升級、卸載包的版本:
pipenv update requests
使用這個命令,我們可以自動升級 requests 包到最新版本。如果需要卸載特定的包,可以使用命令:
pipenv uninstall requests
這將從 Pipfile 及 Pipfile.lock 文件中移除該包。
結語
Pipfile 是一個非常有用的工具,可以幫助我們輕鬆維護 Python 項目的依賴關係,確保開發環境與生產環境的一致性。
希望本文介紹的 Pipenv 工具能夠幫助您簡化 Python 項目的部署和管理,提高開發效率。
原創文章,作者:DEIV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143158.html