Spyder中如何导入并使用arcpy
- 1. 安装方案一(推荐)
- 1.1. 查看ArcGIS自带Python的版本:
- 1.2 下载安装自带Python2 32bit的Anaconda
- 1.3 将ArcGIS相关路径加入到Python路径中
- 2. 安装方案二
- 2.1. 查看ArcGIS自带Python的版本:
- 2.2. 配置需要的环境
- 2.3. 安装对应的Python
- 2.4. 将ArcGIS相关路径加入到Python路径中
- 3. 问题解决
- 3.1. 添加PYTHONPATH变量导致无法启动spyder
- 3.2. 使用重装过的anaconda,无法启动spyder
- 3.3. 未知原因无法打开spyder
相信不少地理工作者都会使用arcpy来批量处理一些文件,同时也会使用anaconda做一些科学运算。但当使用arcpy时,只能使用ArcGIS自带的IDE。但ArcGIS自带的IDE使用起来非常不友好。想使用Spyder时,却发现无法导入arcpy。下面将会将刚折腾出来的spyder中使用arcpy教程分享给大家,解决这个让人困惑已久的问题。
之前将本教程发布在了百度经验上: https://jingyan.baidu.com/article/3f16e00315f7a52591c103f0.html,但百度经验不支持markdown,代码看起来很费劲。所以蹭着刚重装系统,重新又写个教程。但在操作过程中发现以前的方法中有些问题,在此做了一些补充与更新。
首先,spyder要使用arcpy,要保证spyder的Python环境与arcpy的一致。ArcGIS10.1及以上都是使用的Python2.7 32 bit。所以需要spyder中的Python也是对应的版本。我们现在一般都是使用的python2/3的 64bit 版本,所以一般都需要进行配置一下。
1. 安装方案一(推荐)
由于2020年Python官方放弃了Python2的维护,使用conda安装Python2的spyder时,会出现各种各样的问题,所以目前推荐直接安装自带Python2 32bit
的Anaconda
。
1.1. 查看ArcGIS自带Python的版本:
在ArcGIS中打开Python编辑器,然后输入以下命令查看
import sys
sys.version
如图,ArcGIS10.6自带的Python为2.7.14 32 bit
1.2 下载安装自带Python2 32bit的Anaconda
到anacondad清华镜像源中 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ,寻找并下载后缀为Windows-x86.exe
的 Anaconda2
的安装包进行安装。
对ArcGIS10.1及以上的用户,自带的Python版本是2.7的,所以直接寻找更新时间最近的一个即可。例如:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-5.3.1-Windows-x86.exe
对于ArcGIS自带Python版本小于2.7的用户,尝试寻找更新较早的版本,找到与自带Python版本对应的anaconda。
1.3 将ArcGIS相关路径加入到Python路径中
安装成功后,打开Anaconda2
的spyder
每次在导入arcpy之前,先执行下面的代码即可
如果安装路径不同,需要选择对应的路径替换下面的路径。如果ArcGIS安装路径或版本与下面的不一样,一定要确保填入路径真实存在,不可直接复制后就直接运行。
import sys
arcpy_path = [r'C:\Python27\ArcGIS10.6\Lib\site-packages',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\arcpy',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\bin',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcToolbox\Scripts']
sys.path.extend(arcpy_path)
import arcpy
2. 安装方案二
2.1. 查看ArcGIS自带Python的版本:
在ArcGIS中打开Python编辑器,然后输入以下命令查看
import sys
sys.version
如图,ArcGIS10.6自带的Python为2.7.14 32 bit
2.2. 配置需要的环境
1. 确认anaconda的Python版本。
打开spyder,右侧下方的控制器会显示当前spyder中Python的版本。
如果所使用的anaconda的Python版本为Python2 32bit,则直接进行 4. 将ArcGIS相关路径加入到Python路径中 即可。
anaconda可以从官网下载,但服务器在国外,速度可能要慢一点。所以推荐从国内的镜像站下载。
anaconda官方下载地址:https://www.anaconda.com/download/ 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
2. 进行配置
在anaconda
中找到Anaconda Prompt
,单击右键,更多
→以管理员身份运行
,以管理员身份打开Anaconda Prompt
接着更改环境为32 bit
。在命令行中输入:
set CONDA_FORCE_32BIT=1 # 更改环境为32 bit
# 如需要改回64位环境使用:set CONDA_FORCE_32BIT=
conda info # 查看当前环境
2.3. 安装对应的Python
首先创建一个Python2.7的环境:
conda create -n env_name python=2.7 # 注意:env_name为自定义的环境名称,随便命名,比如Python2、PythonArcpy等
如果是老版本的ArcGIS,自带的Python版本号可能小于2.7,将Python版本号改为对应的版本即可
安装时会询问是否显示安装过程,输入y,然后按回车键。
确定安装成功后,激活新的python环境,并安装适用于新环境的spyder:
activate env_name # 注意:env_name是刚才自己自定义的环境名称
# 现在如果不指定spyder版本,conda会默认安装spyder4.0(仅支持Python3.6及以上)
conda install spyder=3 -y # 安装新环境的spyder
新的环境许多第三方包都没有,如果需要,可以在anaconda navigator中安装,或者在此环境下执行:
conda install package -y # 注意,package为所需要的包名,比如 pandas 等
2.4. 将ArcGIS相关路径加入到Python路径中
安装成功后,打开新的spyder(会有两个spyder,以环境名为后缀的spyder才可以导入arcpy)
如果安装的anaconda就是python2 32bit的,直接打开默认的spyder即可
每次在导入arcpy之前,先执行下面的代码即可
如果安装路径不同,需要选择对应的路径替换下面的路径。如果ArcGIS安装路径或版本与下面的不一样,一定要确保填入路径真实存在,不可直接复制后就直接运行。
import sys
arcpy_path = [r'C:\Python27\ArcGIS10.6\Lib\site-packages',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\arcpy',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\bin',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcToolbox\Scripts']
sys.path.extend(arcpy_path)
import arcpy
3. 问题解决
3.1. 添加PYTHONPATH变量导致无法启动spyder
在之前的教程中,我会建议将以上路径直接添加到PYTHONPATH Manager
中。但发现如果现在还这样做,有些anaconda版本下,会导致anaconda的所有软件都无法使用。目前不建议再这样做。
针对已经无法打开的用户,只需进行如下操作即可:
在桌面的此电脑
上右键,选择属性
(或者在控制面板中找到: 控制面板\系统和安全\系统
),点击高级系统设置
在系统属性中的高级选项中,点击环境变量,打开环境变量界面,在环境变量中选中PYTHONPATH项,点击删除后确定即可。重新启动即可打开。
重新打开新建的spyder,将PYTHONPATH Manager
中的路径选中,点击下方的remove path
。将所有的路径删除后,点击close
关闭即可。
3.2. 使用重装过的anaconda,无法启动spyder
如果是重装的anaconda或miniconda,卸载后未删除环境变量中的anaconda/miniconda,重新安装后多数情况下会出现各种问题,建议再次卸载后,删除环境变量中的anaconda后,再按照教程重新安装一遍。
删除方法如下:
在环境变量中,双击用户的用户变量及系统变量中的Path
将里面的含有anaconda
或miniconda
字样的路径全部删除,保存后重启电脑,重新重头安装试一遍。
3.3. 未知原因无法打开spyder
建议先卸载后,删除环境变量(方法是上面的那个),重新重头开始装一遍,如果仍无法使用spyder
,建议使用VS Code
或者Pycharm
等编辑器替代。
VS Code基础入门使用可查看: VS Code 基础入门使用(配置)教程 其他Vs Code 配置可关注查看: Vs Code 配置专栏
使用VS Code
时,如果已经执行过安装spyder
之前的步奏,直接在编辑器中选择新安装的32位的 Python 2.7 ,即可:
在编写arcpy代码之前,仍需先执行:
import sys
arcpy_path = [r'C:\Python27\ArcGIS10.6\Lib\site-packages',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\arcpy',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\bin',
r'C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcToolbox\Scripts']
sys.path.extend(arcpy_path)
import arcpy