[英]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.