Overview

pasteuwsgi

pasteuwsgi is a simple python paste (http://pythonpaste.org/) plugin which adds a command that serve the application for using uWSGI (http://projects.unbit.it/uwsgi/) integrated HTTP server. It can monitor python files and automatically reload uWSGI on file change. It's focused for local development to easily test uWSGI specific features.

install

First, to use pasteuwsgi you need uWSGI installed, both sistem wide or in the virtualenv. Check the uWSGI documentation on how to install uWSGI (http://projects.unbit.it/uwsgi/wiki/Install). The simplest way is to install uwsgi in the virtualenv, using pip:

# pip install uwsgi

Then, you can install pasteuwsgi via pypi:

# pip install pasteuwsgi

Or, if you want the last unstable version, directly from bitbucket (again, using pip):

# pip install -e hg+https://bitbucket.org/gbagnoli/pasteuwsgi#egg=pasteuwsgi

Or you can clone the hg repo and then install:

# hg clone https://gbagnoli@bitbucket.org/gbagnoli/pasteuwsgi
# pip install -e ./

usage

Once installed, simply add this line to setup.py of your paste app:

uwsgi = pasteuwsgi.serve:ServeCommand

in the "[paste.paster_command]" section of the entry_point argument.

i.e. for a pylons-1.0 application:

entry_points="""
[paste.app_factory]
main = aybu.cms.config.middleware:make_app

[paste.app_install]
main = pylons.util:PylonsInstaller

[paste.paster_command]
uwsgi = pasteuwsgi.serve:ServeCommand
""",

You may need to re-run setuptools egg_info after adding the new entry_point:

# cd my-project
# python setup.py egg_info

options

--address Override the http server listening address.
--port Override the http server listening port.
--reload Setup a monitor (using pyinotify) to watch application code to reload on changes. It also monitors code installed in the virtualenv.
--uwsgi Pass additional options to uWSGI directly. Remember that you neeed to wrap uWSGI options with quotes.
--plugins Load uWSGI plugins (for uWSGI >= 0.9.7)

examples

To simply run it as you did with paster serve:

paster uwsgi development.ini --reload

You can add uwsgi options using the -w switch

# run with 2 workers with two threads each
paster uwsgi development.ini --reload -w "-workers 2 --threads 2"

You can even add common options (such the threads or the process one, or others) to a [uwsgi] section inside the paste ini (development.ini in the above example):

[...]
[uwsgi]
threads = 2
workers = 2

This works as pasteuwsgi passes --ini option to uwsgi with the same ini it uses.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.