开发

代码库

pygeoapi代码库存在于https://github.com/geopython/pygeoapi。

测试

pygeoapi用途 pytest 用于管理其自动化测试。测试存在于 /tests 为提供程序、格式化程序、进程以及整个API而开发。

测试可以作为开发工作流的一部分在本地运行。它们也运行在pygeoapi上 Travis setup 对代码库的所有提交和拉取请求。

要运行所有测试,只需运行 pytest 在存储库中。要运行特定的测试文件,请运行 pytest tests/test_api.py 例如。

在OSX上使用Spatialite

使用pyenv

在OSX开发人员中,使用包管理器自制来安装pyenv,以便能够管理Python的多个版本。他们可能会遇到一些关于pygeoapi用于处理空间数据格式的SQLite扩展的加载错误。为了正确运行服务器,您需要仔细遵循以下步骤。

让自制程序和pyenv完美地结合在一起:

# see https://github.com/pyenv/pyenv/issues/106
alias brew='env PATH=${PATH//$(pyenv root)\/shims:/} brew'

安装python时可选择启用SQLite扩展:

LDFLAGS="-L/usr/local/opt/sqlite/lib -L/usr/local/opt/zlib/lib" CPPFLAGS="-I/usr/local/opt/sqlite/include -I/usr/local/opt/zlib/include" PYTHON_CONFIGURE_OPTS="--enable-loadable-sqlite-extensions" pyenv install 3.7.6

通过自制的SQLite配置操作系统附带的SQLite:

export PATH="/usr/local/opt/sqlite/bin:$PATH"

从自制安装Spatialite:

brew update
brew install spatialite-tools
brew libspatialite

为OSX下的Spatialite库设置变量:

SPATIALITE_LIBRARY_PATH=/usr/local/lib/mod_spatialite.dylib