In my Python script the module BeautifulSoup 4 is required to be able to execute correctly, how am I supposed to deploy it from inside my script? Is that even possible? What would be the easiest and most common way to automatically install the dependency?
3 Answers
Sounds like you need to read up a bit on modules (http://docs.python.org/2/tutorial/modules.html), but basically you install the BeautifulSoup module (http://www.crummy.com/software/BeautifulSoup/):
$ easy_install beautifulsoup4
and simply import it in your script:
import bs4
soup = bs4.BeautifulSoup(some_html_doc)
or
from bs4 import BeautifulSoup
soup = BeautifulSoup(some_html_doc)
You can create various environments with different installations of modules and even Python itself with virtualenv, but I'd hold off on that until you are more comfortable.

- 936
- 8
- 14
If you need to distribute your package, you need to understand packaging python http://www.scotttorborg.com/python-packaging/.
From the script itself, what I can recommend is show a message saying beautifulsoup4 is required. Something like:
try:
import bs4
except ImportError:
print "This script requires Beautifulsoup4. Please install it."

- 992
- 8
- 14
Dependencies for a library
If you are developing a library that others will install, make sure to read this:
Own app / script dependencies
If you are trying to deploy it by yourself, the common practice is to use pip
command-line tool and list dependencies in requirements.txt
file, like this:
requests==1.2.3
simplejson>=2.3,<2.5
Then, do this during deployment:
$ pip install -r requirements.txt
More on dependencies: separating environment
It is also worth noting, that to isolate your app/module/script from the other Python apps, it is worth using virtualenv
.
More on dependencies: distributing with external modules
This also allows you to distribute external modules with your own source. For more see: How to pip install packages according to requirements.txt from a local directory?