A Buildout recipe to install and configure PyWPS Web Processing Service with conda.
Project description
Introduction
birdhousebuilder.recipe.pywps is a Buildout recipe to install and configure PyWPS with Anaconda. PyWPS is a Python implementation of a Web Processing Service (WPS). PyWPS will be deployed as a Supervisor service and is available behind a Nginx web server. This recipe is used by the Birdhouse project.
Usage
The recipe requires that Anaconda is already installed. You can use the buildout option anaconda-home to set the prefix for the anaconda installation. Otherwise the environment variable CONDA_PREFIX (variable is set when activating a conda environment) is used as conda prefix.
It installs the pywps package from a conda channel in a conda environment defined by CONDA_PREFIX. The location of the intallation is given by the prefix buildout option. It setups a PyWPS output folder in ${prefix}/var/lib/pywps. It deploys a Supervisor configuration for PyWPS in ${prefix}/etc/supervisor/conf.d/pywps.conf. Supervisor can be started with ${prefix}/etc/init.d/supervisor start.
The recipe will install the nginx package from a conda channel and deploy a Nginx site configuration for PyWPS. The configuration will be deployed in ${prefix}/etc/nginx/conf.d/pywps.conf. Nginx will be started by supervisor.
By default PyWPS will be available on http://localhost:8091/wps?service=WPS&version=1.0.0&request=GetCapabilities.
The recipe depends on:
birdhousebuilder.recipe.conda,
birdhousebuilder.recipe.supervisor,
birdhousebuilder.recipe.nginx and
zc.recipe.deployment.
Supported options
The PyWPS options which are configured by buildout are explained in the PyWPS documentation.
The recipe supports the following buildout options:
- anaconda-home
Buildout option pointing to the root folder of the Anaconda installation. Default: $HOME/anaconda.
Buildout options for pywps:
- prefix
Deployment option to set the prefix of the installation folder. Default: /
- user
Deployment option to set the run user.
- etc-user
Deployment option to set the user of the /etc directory. Default: root
- name
The name of your WPS project (used for config names and folder path).
- hostname
The hostname of the PyWPS service (nginx). Default: localhost
- http-port
The http port of the PyWPS service (nginx). Default: 8091
- https-port
The https port of the PyWPS service (nginx). Default: 28091
- http-output-port, output-port
The http port of the PyWPS output file service (nginx). Default: 8090
- https-output-port
The https port of the PyWPS output file service (nginx). Default: 28090
- workers
The number of gunicorn workers for handling requests. Default: 1
- processes-import
Python package with processes.
- processes-path
Path the PyWPS processes.
- title
Title used for your WPS service.
- abstract
Description of your WPS service.
- loglevel
Logging level for PyWPS. Default: WARN
- parallelprocesses
Maximum number of parallel running processes. The effective number of parallel running processes is limited by the number of cores in the hosting machine. Default: 2
- maxprocesses
Maximum number of processes which are accepted in the queue. Default: 30
- maxrequestsize
Maximal request size accepted in WPS process. Default: 30mb
Example usage
The following example buildout.cfg installs PyWPS with Anaconda:
[buildout] parts = pywps [pywps] recipe = birdhousebuilder.recipe.pywps name = myproject prefix = / user = www-data hostname = localhost http-port = 8091 https-port = 28091 # pywps options processes-import = myproject.processes processes-path = ${buildout:directory}/myproject/processes title = MyProject ... abstract = MyProject does ...
After installing with Buildout start the PyWPS service with:
$ cd ${prefix} $ etc/init.d/supervisord start # start|stop|restart $ etc/init.d/nginx start # start|stop|restart $ bin/supervisorctl status # check that pycsw is running $ less var/log/pywps/myproject.log # check log file
Open your browser with the following URL:
http://localhost:8091/wps?service=WPS&version=1.0.0&request=GetCapabilities
Change History
0.8.4 (2017-01-31)
added options sethomedir and setworkdir.
0.8.3 (2017-01-16)
added archive-root cache option.
0.8.2 (2016-12-09)
set HOME in gunicorn config to var/lib/pywps/tmp/${name}.
added parallelprocesses option.
added https-output-port and http-output-port option.
added enable-https option.
updated Readme.
0.8.1 (2016-11-10)
fixed wspapp.py template: using processes-import option
using proccess-path option.
updated Readme.
0.8.0 (2016-10-17)
updated to pywps 4.x (new config files)
0.5.1 (2016-07-06)
added client_body_max_size to nginx config for uploads.
0.5.0 (2016-06-30)
using zc.recipe.deployment.
changed cache path to var/lib/pywps/cache.
changed tmp path to var/lib/pywps/tmp.
0.4.0 (2016-03-03)
update to pywps 3.2.5.
fixed wpsapp.py wsgi script.
added missing server/debug parameter to pywps.cfg.
0.3.10 (2016-02-12)
added maxoperations and maxfilesize to options.
0.3.9 (2016-02-08)
updated pywps conda dependency.
0.3.8 (2016-02-04)
configure pywps logFile in ${prefix}/var/log/pywps/.
0.3.7 (2016-01-22)
added environment variables PATH and GDAL_DATA to bin/runwps script.
0.3.6 (2016-01-22)
generates bin/runwps script to test pywps service.
0.3.5 (2016-01-21)
updated pywps conda dependency.
0.3.4 (2016-01-19)
cleaned up templates.
added eventlet to the conda dependencies.
0.3.3 (2016-01-18)
renamed gunicorn template.
updated pywps.cfg for gunicron keywords template.
0.3.2 (2016-01-15)
added gunicorn workers parameter.
using gevent worker_class.
using gunicorn config folder etc/gunicorn/.
0.3.1 (2016-01-05)
using cache path var/lib/cache/.
0.3.0 (2015-12-01)
updated to latest pywps wsgi app.
0.2.6 (2015-06-25)
added user option for supervisor and nginx.
0.2.5 (2015-06-24)
enabled https access.
0.2.4 (2015-06-23)
removed unused proxyEnabled option.
cleaned up templates.
0.2.3 (2015-05-18)
updated supervisor config.
log pywps to stderr/supervisor.
0.2.2 (2015-04-21)
do not set HOME environment variable in gunicorn.
0.2.1 (2015-03-24)
added mako_cache to pywps config.
0.2.0 (2015-02-24)
installing in conda enviroment birdhouse.
using $ANACONDA_HOME environment variable.
separation of anaconda-home and installation prefix.
0.1.11 (2014-12-08)
changed default log level.
0.1.10 (2014-12-06)
Don’t update conda on buildout update.
Sets PYTHONPATH in gunicon.conf.py. Used in PyWPS async processes.
0.1.9 (2014-11-26)
Added cache section to pywps.cfg template.
0.1.8 (2014-11-03)
GDAL_DATA added to environment in gunicorn.conf.py template.
0.1.7 (2014-08-27)
phoenix option added for wpsoutputs.
0.1.6 (2014-08-26)
Fixed proxy config for wpsoutputs.
0.1.5 (2014-08-23)
added cache path to nginx configuration.
0.1.4 (2014-08-17)
added /usr/local/bin to gunicorn path (needed for brew on macosx)
0.1.3 (2014-08-01)
Updated documentation.
0.1.2 (2014-07-24)
Fixed hostname in nginx template.
0.1.1 (2014-07-11)
Fixed HOME env in gunicorn template.
0.1.0 (2014-07-10)
Initial Release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for birdhousebuilder.recipe.pywps-0.8.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5331d919413b754313211bffe3635f2f154224f3d0216270c98ec5e9f28d3a5 |
|
MD5 | 1f75feefd113bb5f5116d04108df29c2 |
|
BLAKE2b-256 | 3bf0bd65ad8bb36e82a3bda79c93285596b5ba98d905db08e334d90e563500d2 |
Hashes for birdhousebuilder.recipe.pywps-0.8.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1123d6ae1a53a4b1f4447e196f65244b172185c074a99a5c5a8627fa0a38b7bf |
|
MD5 | 3f7a17fda87f1bf17369ef90de77b2ce |
|
BLAKE2b-256 | ce86bb648f4303f721a65968340ca61392014b8c5adb96a29c4c38ce7c61c286 |