[英]Difference between using find_packages() vs “requirements.txt” for setup.py script
我一直在打包一個python項目,所以我可以在實驗室的其他系統上安裝它。 在我關於如何創建setup.py腳本的研究中,我已經看到了兩種方法。
1)使用“pip freeze> requirements.txt”命令; 然后在安裝腳本中“packages ='requirements.txt'”
2)只需在設置腳本中使用“packages = find_packages()”即可
我的問題是,這兩種方法有什么區別? 似乎“find_packages”與“pip freeze”的作用相同,但在安裝沒有任何內容的模塊方面沒有任何作用。
任何人都可以解釋這兩種方法有何不同,或者只是解釋每個方法的作用,以便我可以就使用哪種方法做出更明智的決定?
謝謝!
使用“pip freeze> requirements.txt”命令; 然后在安裝腳本中“packages ='requirements.txt'”
即使假設通過packages='requirements.txt'
你的意思是packages=open('requirements.txt').read().splitlines()
,這絕對是錯誤的做法,我希望你只是簡單地做過誤讀了你所咨詢的任何來源,而不是實際上在某處發布的這種公然錯誤的信息。
setup()
函數的packages
關鍵字的目的是告訴setuptools
在分發和安裝項目時,將包含存儲庫中Python代碼的哪些目錄。 對於大多數簡單的情況,只需要packages=find_packages()
。
另一方面, requirements.txt
應該包含你的項目所依賴的其他人的項目列表(它應該是手工制作的,而不是將像pip freeze
重新定向到它中,就像一個切葉的黑猩猩)。 將其內容傳遞給install_requires
的正確setup()
關鍵字是導致項目依賴性也會在某人安裝項目時安裝的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.