我在部署ArcGIS API for Python时踩到的坑
ArcGIS API for Python相比于其他ESRI产品,还是很年轻。我在部署时踩到了坑,网上也找不到解决方法,很是煞风景,也很打击学习的积极性。
今天回顾一下,做个总结吧。一方面自己备忘,另一方面希望能帮到同行的小伙伴。
看ESRI的官方文档,ArcGIS API for Python部署很简单呀:
1 安装Anaconda
2 python环境中安装Arcgis包
关于版本要求,ESRI的官方文档是这样写的:
我装了Anaconda3-4.4.0(内置Python3.6),然后在默认Python环境下“conda install -c esri arcgis”安装ArcGIS包。一切顺利。
然后用jupyter notebook
出来的结果是MapView(basemaps=[‘dark-gray’, ‘dark-gray-vector’, ‘gray’, ‘gray-vector’ ……没有出来地图!
打开浏览器的开发者模式,看抓包信息里面,没有去调瓦片。
问题原因:Python3.6环境不支持ArcGIS API for Python 1.4.2
解决办法:新建Python3.5环境(conda create -n agsenv python=3.5),在此环境下安装ArcGIS API for Python(conda install -c esri arcgis)
分析:可能是arcgis1.4.2出文档时python最新版本还是3.5的吧。ESRI以为以后的Python版本也不会有问题。而我也天真地相信了。
又过了几天,我在一台新电脑上部署环境。这次我特意下载了Anaconda3-4.2.0-Windows-x86_64(内置Python3.5)。装好了Anaconda,在默认base环境下安装Arcgis包。
装的过程中,会出现 ImportError: cannot import name ‘ensure_dir_exists‘ 这样的错误。
但是import arcgis还是正常的
所以没有管它。但是运行jupyter notebook报错:
网上找到解决问题的方法:
conda update jupyter_core jupyter_client
jupyter升级到了最新版本,jupyter notebook正常了。
但是arcgis好像还是不好使。
仅仅升级jupyter是不够的,(我理解是因为jupyter版本低的原因,arcgis向jupyter中添加mapview失败)。因此需要卸载掉Arcgis包,再重新安装。当然如果是先升级jupyter,再安装arcgis包,就不会有这个问题了。
conda uninstall esri arcgis
conda install -c esri arcgis
这样就一切正常了
其他注意事项:
1 Anaconda装完后,需要添加国内清华的镜像。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
2 在cmd或者Powershell中执行conda命令,必须用管理员权限,否则你会卡在这一步(如果我没记错的话):
3 安装Anaconda安装路径不能带空格。默认路径就可以,我还是习惯把它放到C盘根目录下。
4 jupyter notebook,弹出空白页面没有内容的,建议使用最新版的谷歌浏览器
5 jupyter notebook,弹出“http://localhost:8888/tree”错误页面的,请尝试“http://127.0.0.1:8888/tree”
最后说一句:我也不知道往默认的python环境下安装东西是不是个不好的习惯。是不是正常的都应该新建个环境?有内行的小伙伴,望不吝赐教。
转载自:https://blog.csdn.net/zython/article/details/81278960