解決pip freeze匯出時模組格式不相容的情況

我們在建立Django專案時都會為這個專案產生一個專屬的虛擬環境,當這個網站需要被移植到不同的電腦環境時,新的環境也需要瞭解這個專案究竟使用了哪些Python模組,以利新環境的建立。通常,在專案的網站中我們會以requiremens.txt這個檔案來標示這個專案所有用到的模組。一般而言,我們會使用以下的指令產生這個檔案:

pip freeze > requirements.txt

然後,在後來的系統中,這樣的指令經常會產生出如下所示的格式:

asgiref==3.5.2
certifi @ file:///C:/Windows/TEMP/abs_e9b7158a-aa56-4a5b-87b6-c00d295b01fanefpc8_o/croots/recipe/certifi_1655968940823/work/certifi
Django==4.0.6
docx==0.2.4
importlib-metadata==4.12.0
jieba==0.42.1
lxml==4.9.1
Markdown==3.4.1

上面的內容中的第2行,會使得這個檔案在其它的作業環境中無法被重新安裝,因為,我們必須改為以下的指令來產生才行:

pip list --format=freeze > requirements.txt

如此,同樣的環境下,就會產生以下的格式,此種格式就不用擔心作業環境不同而造成無法安裝模組的困擾了。

asgiref==3.5.2
certifi==2022.6.15
Django==4.0.6
docx==0.2.4
importlib-metadata==4.12.0
jieba==0.42.1
lxml==4.9.1
Markdown==3.4.1

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *