0
点赞
收藏
分享

微信扫一扫

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


本地化环境下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中的SSL及locale的bug修复过程_ArcGIS




修改方法:

在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

如下图:

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



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


重启jupyter之后,问题排除:

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



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

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




这个问题是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')


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




重启jupyter ,问题解决:

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

举报

相关推荐

0 条评论