安装

系统要求

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

注解

对于 GeoNodeOpen 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默认包含在官方的多版本存储库中.

在 Windows 上运行

对于Windows 安装,更改 'csw.py ' 的第一行:

#!/Python27/python -u

注解

使用 -u 需要正确输出 gzip 压缩响应。

安全性

默认情况下, 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/