title: Difference between using find_packages() vs "requirements.txt" for setup.py script
body: <p>I've been working on packaging a python project to so I can install it on other systems in a lab. In my research on how to go about creating the setup.py script, I've seen two methods.</p>
  
  <p>1) use "pip freeze > requirements.txt" command; then "packages='requirements.txt'" in the setup script</p>
  
  <p>2) Simply using "packages=find_packages()" in the setup script</p>
  
  <p>My question is, what is the difference between these two methods?  It seems like "find_packages" does the same as "pip freeze" but does nothing in terms of installing a modules where there are none to begin with.</p>
  
  <p>Can anyone explain how these two methods differ, or just explain what each one is doing so I can make a more informed decision on which method to use?</p>
  
  <p>Thanks!</p>