簡體   English   中英

如何使用pickle文件組織Python項目?

[英]How to organize a Python project with pickle files?

我來自Java背景,而且是Python的全新。

現在我有一個Python項目,包含一些Python腳本和存儲在Git中的pickle文件。 pickle文件是序列化的sklearn模型。

我想知道如何組織這個項目。 我認為我們不應該將pickle文件存儲在Git中。 我們應該將它們存儲為某處的二進制依賴項。

是否有意義 ? 存儲Python項目的二進制依賴項的常用方法是什么

Git對二進制數據很好。 例如,許多項目在git repos中存儲例如圖像。

我想,經驗法則是決定你的二進制文件是源材料,外部依賴項還是中間構建步驟。 當然,沒有嚴格的規則,所以只需決定你對它們的看法。 以下是我的建議:

  1. 如果它們(可重復地)從某些東西生成,則.gitignore二進制文件並具有構建必要數據的腳本。 它可以是相同的,也可以是單獨的回購 - 取決於它感覺最好的地方。

  2. 如果它們是從某些外部源獲得的,例如外部下載,則適用相同的邏輯。 通常,我們不會在存儲庫中存儲依賴項 - 我們只保留對它們的引用。 例如,我們不保留virtualenvs但只保留requirements.txt文件 - Java世界類比(粗略近似)就像沒有.jars但只有pom.xml或build.gradle中的依賴項部分。

  3. 如果它們可以被認為是源材料,例如,如果您使用Python作為編輯器操作它們 - 不要擔心文件的二進制特性,只需將它們放在存儲庫中即可。

  4. 如果它們不是真正的源材料,但它們的生成過程非常復雜或需要很長時間,並且文件不是要定期更新 - 我認為將它們放入其中並不是非常錯誤回購。 當然,留下關於如何生成文件的注釋(README.txt或其他內容)是個好主意。

哦,如果文件很大(比如數百兆或更多),請考慮看一下git-lfs。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM