您的位置:首页 > 编程语言 > Python开发

本地化环境下ArcGIS Python API中的SSL及locale的bug修复过程

2017-03-08 15:13 429 查看
本地化环境下ArcGIS Python API中的SSL及locale的bug修复过程

进来试用ArcGIS Pro和对应的ArcGIS Python API,遇见各种问题……新产品还是不成熟啊,特别是官方中文版还没有出来的时候,各种本地问题话噌噌噌的乱冒,今天又遇见两ArcGIS Python API的……

如果有人要问啥是ArcGIS Python API,就一句话:用Python来控制ArcGIS Online / Portal for ArcGIS的东东……利用Python中的Juypter实现各种展示和分析。

两个bug及修复的过程如下:

1、SSL的Bug

加载自签名证书创建的Portal的时候,会报[SSL: CERTIFICATE_VERIFY_FAILED]错误,这是因为2.7.9之后Python的一个安全新特性。



修改方法:

在ArcGIS Python API安装的目录下,修改主文件gis.py文件,在头部加入下面这两句话:

我的路径是:D:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\arcgis

import ssl

ssl._create_default_https_context = ssl._create_unverified_context


如下图:



对自签名证书不进行认证,这样就可以了:

重启jupyter之后,问题排除:



2、显示自己portal里面的item的时候,会因为中文操作系统,出现读取日期格式不正确的问题,如下所示:



这个问题是ArcGIS 的Python 3.5之后经常出现的,设置国际化的时候,代码里面有些地方写死了,有些地方读取系统的默认语言设置,所以会出现错误,修改方式如下:

与昨天排除Pandas的方式一样……只不过今天这个文件写入的地方不同,如果用一样的修改话的话,是行不通观点。

在ArcGIS Python API安装的目录下,修改主文件gis.py文件,找到:2788行,修改如下:

我的路径是:D:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\site-packages\arcgis
locale.setlocale(locale.LC_ALL, 'en')



重启jupyter ,问题解决:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: