相信对于绝大多数要用arcpy做python二次开发的小伙伴来说,要import arcpy的最简单直接的方式就是用arcgis安装时自带的python。我最开始就是这样的,并且直到今天之前都是如此。
与此同时,我也开始尝试用虚拟环境(virtualenv)进行开发,一般的包都可以通过pip等方式在虚拟环境中安装,但是arcpy是商业软件,显然不行。
今天,终于找到了解决方法!
虽然这篇帖子写的有点儿晦涩,主要是排版格式不太好。但不可否认,我就是从如下这个帖子找到了解决之道。Anaconda下调用ArcGIS的arcpy工具包_dingli8570的博客-CSDN博客blog.csdn.net找到自己安装arcgis时同时安装的那个python文件夹,默认是在C:/Python27。顺藤摸瓜,找到Lib/site-packages下的这个形如Desktop10.3.pth的文件,拷贝它。
2. 将其粘贴到自己的项目目录下对应的Lib/site-packages目录下,路径类似为如下:
3. 然后就可以运行程序,import arcpy 啦!
为什么单单把这个文件拷贝过去就可以了呢?打开Desktop10.3.pth,里面的内容只是这样的:
C:\Program Files (x86)\ArcGIS\Desktop10.3\bin
C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy
C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcToolBox\Scripts
原来,只是记录了arcpy的相关目录。应该是在python虚拟环境加载的时候把site-packages目录下所有的.pth文件都遍历一遍。在加载包时除了加载site-packages目录里的包以外,还要把.pth里面的各个目录下的包也都加载进来。
其实方法就在那里,只是一直没有去研究怎么解决而已。