How do I package/distribute a Python 2.7 application with selenium?
Question: I am fairly new to Python and I have developed a program that has a Tkinter
GUI and uses selenium WebDriver to scrape information. I need to find a way to
package all of this so that it can be used on other computers. I call three
extra modules (selenium, openpyxl, BeautifulSoup) in my script. Is there a way
to make this an executable file? Or will they have to call it through their
command window? I have heard of a program called Advanced Installer, would
this do what i want?

Thank you

I realize that my question is very broad, i just don't know where to begin.
This application is only applicable to people within my company, so i don't
want it to be available to others. I just want to be able to move all the
necessary files to another computer and they can just click one button and go.


Answer: I encourage you to read how to package a python application. Typically what
you want to do is release your application on the [Python Packaging
Index](http://pypi.python.org/), so that your app is available as a Python
module for other developers and users. Once you release your app on PyPI, you
can go ahead and provide users with further options like easy install.

Note that releasing your app and making it available to the world is something
that you'd certainly want to do.

The best way to package your application is by using
[distutils](http://docs.python.org/2/library/distutils.html).

Since packaging a python app is a considerably broad topic, I won't be able to
cover it in entirety here. However, here are a few guides to get you started:

  * [Hitchhiker’s Guide to Packaging](http://guide.python-distribute.org/index.html)
  * [Distributing Python modules](http://docs.python.org/2/distutils/)
  * [Guide to open-sourcing a python project](http://www.jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/)

Finally, a good practice is to look at existing open-source Python projects
and look at the way their `setup` script and the `MANIFEST.in` file is
written. For doing that, you would need to understand the way the project is
structured, which is important in realizing the correct way to package an
application.

Hope this helps. All the best!

