Spyder中如何导入并使用arcpy

1 篇文章 2 订阅
1 篇文章 0 订阅


相信不少地理工作者都会使用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 32bitAnaconda

1.1. 查看ArcGIS自带Python的版本:

在ArcGIS中打开Python编辑器,然后输入以下命令查看

import sys
sys.version 

如图,ArcGIS10.6自带的Python为2.7.14 32 bit
查看ArcGIS中Python的版本

1.2 下载安装自带Python2 32bit的Anaconda

到anacondad清华镜像源中 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ ,寻找并下载后缀为Windows-x86.exeAnaconda2 的安装包进行安装。

对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
查看ArcGIS中Python的版本

2.2. 配置需要的环境

1. 确认anaconda的Python版本。

打开spyder,右侧下方的控制器会显示当前spyder中Python的版本。
查看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

以管理员身份打开AnacondaPrompt

接着更改环境为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版本

确定安装成功后,激活新的python环境,并安装适用于新环境的spyder:

activate env_name 			# 注意:env_name是刚才自己自定义的环境名称

# 现在如果不指定spyder版本,conda会默认安装spyder4.0(仅支持Python3.6及以上)
conda install spyder=3 -y 		# 安装新环境的spyder

安装spyder

新的环境许多第三方包都没有,如果需要,可以在anaconda navigator中安装,或者在此环境下执行:

conda install package -y			# 注意,package为所需要的包名,比如 pandas 等

2.4. 将ArcGIS相关路径加入到Python路径中

安装成功后,打开新的spyder(会有两个spyder,以环境名为后缀的spyder才可以导入arcpy)

如果安装的anaconda就是python2 32bit的,直接打开默认的spyder即可

打开对应的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

导入arcpy界面

3. 问题解决

3.1. 添加PYTHONPATH变量导致无法启动spyder

在之前的教程中,我会建议将以上路径直接添加到PYTHONPATH Manager中。但发现如果现在还这样做,有些anaconda版本下,会导致anaconda的所有软件都无法使用。目前不建议再这样做。

之前教程PYTHONPATH manager加入对应的路径

针对已经无法打开的用户,只需进行如下操作即可:

在桌面的此电脑上右键,选择属性(或者在控制面板中找到: 控制面板\系统和安全\系统),点击高级系统设置

打开高级设置

在系统属性中的高级选项中,点击环境变量,打开环境变量界面,在环境变量中选中PYTHONPATH项,点击删除后确定即可。重新启动即可打开。

在这里插入图片描述

重新打开新建的spyder,将PYTHONPATH Manager中的路径选中,点击下方的remove path。将所有的路径删除后,点击close关闭即可。
清除Python路径后

3.2. 使用重装过的anaconda,无法启动spyder

如果是重装的anaconda或miniconda,卸载后未删除环境变量中的anaconda/miniconda,重新安装后多数情况下会出现各种问题,建议再次卸载后,删除环境变量中的anaconda后,再按照教程重新安装一遍。

删除方法如下:

在环境变量中,双击用户的用户变量及系统变量中的Path
在这里插入图片描述
将里面的含有anacondaminiconda字样的路径全部删除,保存后重启电脑,重新重头安装试一遍。
在这里插入图片描述

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
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉研

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值