CherryPy is a pure Python library. This has various consequences:
CherryPy does not have any mandatory requirements. However certain features it comes with will require you install certain packages.
CherryPy can be easily installed via common Python package managers such as setuptools or pip.
$ easy_install cherrypy
$ pip install cherrypy
You may also get the latest CherryPy version by grabbing the source code from BitBucket:
$ hg clone https://bitbucket.org/cherrypy/cherrypy $ cd cherrypy $ python setup.py install
CherryPy comes with a set of simple tutorials that can be executed once you have deployed the package.
$ python -m cherrypy.tutorial.tut01_helloworld
Point your browser at http://127.0.0.1:8080 and enjoy the magic.
Once started the above command shows the following logs:
[15/Feb/2014:21:51:22] ENGINE Listening for SIGHUP. [15/Feb/2014:21:51:22] ENGINE Listening for SIGTERM. [15/Feb/2014:21:51:22] ENGINE Listening for SIGUSR1. [15/Feb/2014:21:51:22] ENGINE Bus STARTING [15/Feb/2014:21:51:22] ENGINE Started monitor thread 'Autoreloader'. [15/Feb/2014:21:51:22] ENGINE Started monitor thread '_TimeoutMonitor'. [15/Feb/2014:21:51:22] ENGINE Serving on http://127.0.0.1:8080 [15/Feb/2014:21:51:23] ENGINE Bus STARTED
We will explain what all those lines mean later on, but suffice to know that once you see the last two lines, your server is listening and ready to receive requests.
During development, the easiest path is to run your application as follow:
$ python myapp.py
As long as myapp.py defines a “__main__” section, it will run just fine.
Another way to run the application is through the cherryd script which is installed along side CherryPy.
This utility command will not concern you if you embed your application with another framework.
- -c, --config¶
Specify config file(s)
Run the server as a daemon
- -e, --environment¶
Apply the given config environment (defaults to None)
Start a SCGI server instead of the default HTTP server
- -i, --import¶
Specify modules to import
- -p, --pidfile¶
Store the process id in the given file (defaults to None)
- -P, --Path¶
Add the given paths to sys.path