安装¶
系统要求¶
pycsw 编写语言是 Python ,版本(测试通过)为 2.7, 3.4 及3.5
pycsw 是由以下Python库支撑的:
- lxml 用于XML 支撑
- SQLAlchemy 用于数据库绑定
- pyproj 用于变换坐标
- Shapely 用于空间查询/ 几何支持
- OWSLib 用于CSW客户端和元数据分析
- six 用于处理 Python 2/3 兼容性
- xmltodict ,来像使用 JSON 一样使用 XML
- geolinks 处理 地理空间链接
注解
可以安装一些与之相关的程序通过 easy_install or pip
注解
对于 GeoNode 或 Open Data Catalog ,或 HHypermap 部署,SQLAlchemy 不是必需的
从源代码安装¶
下载 最新稳定版本,或从 Git 获取。
为开发人员和真正Impatient¶
安装需要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 配置/部署)。
从 Python Package 指数 (PyPi) 安装¶
# easy_install or pip will do the trick
$ easy_install pycsw
# or
$ pip install pycsw
从 OpenSUSE 生成服务安装¶
若要在 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/Mint系统上安装¶
为了在基于 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
以指向更新的位置 - 配置 web 服务器,拒绝对配置的访问。 例如,在 Apache 中,在
httpd.conf
下添加以下内容:
<Files ~ "\.(cfg)$">
order allow,deny
deny from all
</Files>
在 WSGI 上运行¶
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/