pycsw 编写语言是 Python ,版本(测试通过)为 2.7, 3.4 及3.5
pycsw 是由以下Python库支撑的:
注解
可以安装一些与之相关的程序通过 easy_install or pip
注解
对于 GeoNode 或 Open Data Catalog ,或 HHypermap 部署,SQLAlchemy 不是必需的
下载 最新稳定版本,或从 Git 获取。
安装需要4分钟:
$ virtualenv pycsw && cd pycsw && . bin/activate
$ git clone https://github.com/geopython/pycsw.git && cd pycsw
$ pip install -e . && pip install -r requirements-standalone.txt
$ cp default-sample.cfg default.cfg
$ vi default.cfg
# adjust paths in
# - server.home
# - repository.database
# set server.url to http://localhost:8000/
$ python pycsw/wsgi.py
$ curl http://localhost:8000/?service=CSW&version=2.0.2&request=GetCapabilities
$ git clone git://github.com/geopython/pycsw.git
确保在安装目录中 CGI已启用。 例如,对 Apache,如果 pycsw 安装在 /srv/www/htdocs/pycsw
(这时,URL 就会在 http://host/pycsw/csw.py
),将以下信息添加至 httpd.conf
:
<Location /pycsw/>
Options +FollowSymLinks +ExecCGI
Allow from all
AddHandler cgi-script .py
</Location>
注解
如果 pycsw安装在 cgi-bin
下,工作就能预期进行。在这种情况下, tests 应用程序就必须转移到其它位置,成为静态的 HTML 文件。
请确保你已经从 requirements.txt and requirements-standalone.txt
获得所有dependencies
$ git clone git://github.com/geopython/pycsw.git
$ python setup.py build
$ python setup.py install
在这一点上,pycsw 安装库将 CGI 'csw.py '或 WSGI' pycsw/wsgi.py ' 脚本发送到您的 web 服务器环境 (参见下文 WSGI 配置/部署)。
# easy_install or pip will do the trick
$ easy_install pycsw
# or
$ pip install pycsw
若要在 openSUSE Leap (稳定版本) 安装 pycsw 包,就可以以用户 root
身份运行以下命令:
# zypper -ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_42.1/ GEO
# zypper refresh
# zypper install python-pycsw pycsw-cgi
若要在 openSUSE Tumbleweed (滚动版本) 安装 pycsw 包,就可以以用户 root
身份运行以下命令:
# zypper -ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Tumbleweed/ GEO
# zypper refresh
# zypper install python-pycsw pycsw-cgi
另一种方法是使用 一键式安装程序 。
为了在基于 Ubuntu 的发行版安装最新的 pycsw,可以运行以下命令来使用 UbuntuGIS 非稳定版本:
# sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
# sudo apt-get update
# sudo apt-get install python-pycsw pycsw-cgi
或者,可以使用UbuntuGIS Stable存储库,其中包含较老但经过良好测试的版本:
# sudo add-apt-repository ppa:ubuntugis/ppa # sudo apt-get update # sudo apt-get install python-pycsw pycsw-cgi
注解
自从Ubuntu 16.04LTS Xenial发布以来,pycsw默认包含在官方的多版本存储库中.
默认情况下, default.cfg
是 pycsw 安装的根目录。 如果 pycsw 设置在 HTTP 服务器 cgi-bin
区域以外,此文件就可以被读取。 以下是几项保护配置的选项:
default.cfg
移动到非 HTTP 可访问的区域,并修改 csw.py
以指向更新的位置httpd.conf
下添加以下内容:<Files ~ "\.(cfg)$">
order allow,deny
deny from all
</Files>
pycsw 支持 Web Server Gateway Interface (WSGI)。 在 WSGI 模式下运行 pycsw,在 WSGI 服务器环境中使用 pycsw/wsgi.py
。
注解
mod_wsgi
只支持已编译的python版本。如果目标服务器支持 WSGI 应用,pycsw也是相同的 python 版本。WSGIDaemonProcess 提供一个 python-path
指令,其允许从 python 版本 mod_wsgi
进行virtualenv 的创建。
下面是Apache 配置的示例:
WSGIDaemonProcess host1 home=/var/www/pycsw processes=2
WSGIProcessGroup host1
WSGIScriptAlias /pycsw-wsgi /var/www/pycsw/wsgi.py
<Directory /var/www/pycsw>
Order deny,allow
Allow from all
</Directory>
或者使用 WSGI 参考实例 :
$ python ./pycsw/wsgi.py
Serving on port 8000...
将pycsw发布到 http://localhost:8000/