ubuntu中vscode配置python_VScode在Ubuntu上安装和使用SuperMap Python

  • Post author:
  • Post category:python


VScode在Ubuntu上可以安装和使用SuperMap Python的相关模块,将各种Python库(如GDAL、Proj以及各种科学计算python库等)结合起来使用。通过同时调用iClient Python和iObjects Python,与SuperMap iServer及在线服务进行互访,将本地应用与在线服务实现无缝的整合。

1、GIS Python库

SuperMap的Python支持包括:

基础模块

iClient Python,用于访问iServer及在线服务的Python库。

iObjects Python,基于iObjects Java的原生GIS支持库的Python接口。

使用环境

Python console,python的原生console。

iPython console,ipython的原生console。

Jupyter Notebook,支持Notebook格式。

JupyterHub,支持基于多用户的Notebook环境。

JupyterHub for K8s,支持运行于Kubernetes集群上的基于多用户的Notebook环境。

iDesktop Python Console,在桌面GIS环境中的python原生console。

iServer with Jupyter Notebook,集成到iServer的Notebook服务。

iDataInsight,集成到”数据洞察”WebApp的python支持。

iPortal,集成到”GIS门户”WebApp的python支持。

SuperMap Online,集成到”在线服务”WebApp的python支持。

2、安装组件和支持库

需要同时安装iObjects Java和iObjects Python库。

2.1 下载iObjects Java组件

iObjects Python需要该组件来执行空间计算操作。

默认安装路径:/opt/SuperMap

由于文件较大,使用wget -c实现断点续传。如下:

wget -c http://download.supermap.com.cn/2019/SuperMap9D/9.1.1/iObjects_911_release_20190129/supermap-iobjectsjava-9.1.1-16827-70590-linux64-all-Bin.tar.gz

解压后复制所有文件到JupyterHub安装的根目录下的目录resources/Bin,这是我这里的默认目录。

这是使用共享存储的目录,如果想要放到其它目录,需要同时修改下面的脚本文件。

同时需要相应的license文件(可以在线申请获得),如resources/supermap_any_2019.lic9d,

如果在Docker中使用:

在Build过程放入 ./SuperMap/supermap_any_2019.lic9d。

然后再复制到Docker image的/opt/SuperMap目录下。

2.2 下载libpng支持库,用于Ubuntu 18.04

iObjects Java需要用到libpng12-0_1.2.54-1ubuntu1.1_amd64.deb,但是我这个Docker镜像用的Ubuntu 18.04里没有默认安装,需要先下载下来,在Docker Build过程中安装进去。

2.3 安装iobjects-python

# 添加 iObjects-python 软件包。

RUN pip install iobjectspy==9.1.1

其它版本,相应指定安装即可。

2.4 安装iclient-python

# 添加 iclient-python 软件包。

RUN pip install iclientpy

其它版本,相应指定安装即可。

3、使用GIS库

打开VSCode,输入代码:

#导入iobjectspy的python库。

from iobjectspy import *

#获得工作空间对象。

ws=workspace()

#获得数据源集合对象。

ds=ws.datasources

#遍历数据源集合,输出相关信息。

for i in ds:

print(i)

#遍历数据源集合,输出每个数据集的别名。

>>> for i in ds:

>>> print(i.alias)

>>>

SuperMapCloud

ChinaRS

查看工作空间对象ws的帮助信息,输入:

help(ws)

具体语法请参考iObjectPy,在iDesktop里也是完全一样的。

更多参考: