DTBGGP64.pth
中找不到路径文件C:\Python27\ArcGIS10.2\Lib\site-packages
。 有人遇到过类似的问题吗?
我想知道是否存在一种变通办法,方法是通过包含一个告诉Anaconda安装arcpy的路径文件?我试图创建一个包含以下文本的.pth文件:
# .pth file for arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\bin
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\Scripts
并将其保存到
C:\Anaconda\Lib\site-packages
(也就是说,如果确实是所有软件包都保存在这里)但出现以下错误:Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\__init__.py", line 21, in <module>
from arcpy.geoprocessing import gp
File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\__init__.py", line 14, in <module>
from _base import *
File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 14, in <module>
import arcgisscripting
ImportError: DLL load failed: %1 is not a valid Win32 application.
我在Windows 7(64位)平台上运行conda 3.7-py27。 Anaconda安装在
C:\Anaconda
中,而ArcMap安装在C:\ArcGIS\Desktop10.2
中。是否有其他解决方案可以使arcpy与Anaconda一起使用?我只希望能够从Powershell运行我的脚本。#1 楼
您在Anaconda安装中使用的是64位版本的Python,而ArcMap的Python是32位版本。您需要安装一些64位ArcGIS构建(64位背景地理处理或ArcGIS for Server)并指向该构建,或者安装32位Anaconda实例,然后重试。请参阅下载页面并获取32位安装程序。#2 楼
本教程向您展示如何设置conda环境以与ArcGIS 10.4和ArcGIS Pro 1.3一起使用。使用ArcGIS 10.4设置Anaconda的工作流程
在不破坏Windows环境(路径,注册表)以破坏Esri的python堆栈的情况下安装Anaconda
配置Anaconda具有所需的特定附加组件,并且
配置ArcGIS的Python,以便它知道适当的Anaconda内容。
1)为所有用户安装Anaconda
转到http://continuum.io/downloads
下载32位版本的Anaconda(Python 2.7)
在安装对话框中:
选择“为所有用户安装”
默认情况下安装到文件夹(C:\ Anaconda2)
重要说明:为避免破坏ArcGIS(或其他)软件),取消选中复选框(a)将Anaconda设置为默认Python,并(b)将Anaconda的Python添加到PATH。
转到“开始”>“所有程序”(应用程序) > Anaconda2(32位)> Anaconda提示。右键单击,以管理员身份运行。
2)配置Anaconda环境以与ArcGIS一起使用
查找ArcGIS正在使用的numpy和matplotlib的版本。
打开ArcMap及其Python窗口,然后输入以下命令:
>>> import sys,numpy,matplotlib
>>> print (sys.version,numpy .__ version__,matplotlib .__ version__)
('2.7.10(默认,2015年5月23日,09:40:32)[MSC v.1500 32位(Intel)]','1.9 .2','1.4.3')
创建与ArcGIS兼容的Anaconda环境
Anaconda命令提示符(开始>所有程序(应用程序)> Anaconda2(32位),选择“ Anaconda提示符”),右键单击,以管理员身份运行。
类型(取决于ArcGIS版本,我使用ArcGIS 10.4作为此处为示例):
“” conda create -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pyparsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole“
输入y继续。
然后,Anaconda的conda命令将建立一个环境子目录,例如:“ C:\ Anaconda2 \ envs \ arc104”,将下载的软件包安装到其中。
测试虚拟环境
在Anaconda命令提示符下,键入:激活arc104
类型:conda列表。您可以看到已安装软件包的列表。
添加更多软件包
您可以使用conda install添加更多软件包,但请确保指定这些版本号不会更改环境的python或numpy的版本号(否则ArcGIS将无法再使用该环境)。
让我们添加Python空间分析库(pysal)模块。
在Anaconda提示符处键入以下命令:“ conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal”
3)将ArcGIS配置为可以看到Anaconda,反之亦然
Anaconda Python到ArcPy
将Desktop10.4.pth文件复制到Anaconda环境site-packages文件夹:
从:C:\ Python27 \ ArcGIS10.4 \ Lib \ site-packages \ Desktop10.4.pth
到:C:\ Anaconda2 \ envs \ arc104 \ Lib \ site-packages \ Desktop10.4.pth
Arcpy到Anaconda Python
用cont创建一个zconda.pth(路径)文件在其中输入“ C:\ Anaconda \ envs \ arc104 \ lib \ site-packages”。
然后将zconda.pth复制到C:\ Python27 \ ArcGIS10.4 \ Lib \ site-packages
在ArcMap中进行测试
作为普通用户,启动ArcMap,打开Python窗口
键入“ import pysal”
输入“ pysal”。带有pysal提供的功能列表的弹出菜单是安装成功的一个很好的信号。
在PyCharm中进行测试
>启动PyCharm,在“文件\设置”中,选择“项目”,然后选择“项目解释器”
忽略“项目解释器”的下拉列表,然后单击齿轮按钮以添加“本地”,然后在文件浏览器中选择C:\ Anaconda2 \ envs \ arc104 \ python.exe
要运行脚本,请在“项目”窗口中右键单击它,然后选择“运行”或“调试”
重新启动Python控制台的PyCharm以使用arc104环境。
使用ArcGIS Pro 1.3设置Anaconda的工作流程
1)创建一个Anaconda环境,该环境是与ArcGIS Pro兼容
从C:\ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs复制文件夹arcgispro-py3并粘贴到C:\ Anaconda2 \ envs
将C:\ Anaconda2 \ envs中复制的文件夹arcgispro-py3重命名为arcpro
2)测试虚拟环境
在Anaconda命令提示符处,键入:激活arcpro
类型:conda列表。您可以看到已安装软件包的列表
3)添加更多软件包
让我们添加Python空间分析库(pysal )模块。
在Anaconda提示符下键入以下命令:“ conda install pysal”
4)配置ArcGIS以查看Anaconda,反之亦然
Anaconda Python到ArcPy
在“ C:\ Anaconda2 \ envs \ arcpro \ lib \ site-packages”中编辑ArcGISPro.pth(路径)文件“。
将相对ArcPy路径更改为C:\ Program Files \ ArcGIS \ Pro \ Resources \ ArcPy
将相对ArcToolBox路径更改为C:\ Program Files \ ArcGIS \ Pro \ Resources \ ArcToolBox
Arcpy到Anaconda Python
创建内容为“ C:\ Anaconda2 \ envs \ arcpro \ lib \”的zconda.pth(路径)文件
,然后将zconda.pth复制到C:\ Program Files \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-packages
在ArcGIS Pro中进行测试
启动ArcGIS Pro,打开Python窗口
键入“ import pysal”
键入“ pysal”。包含pysal提供的功能列表的弹出菜单是安装成功的一个很好的信号。
在PyCharm中进行测试
启动PyCharm,在“文件\设置”中,选择“项目”,然后选择“项目解释器”
忽略“项目解释器”的下拉列表,然后单击齿轮按钮以添加“本地”,然后在文件浏览器中选择C:\ Anaconda2 \ envs \ arcpro \ python.exe
要运行脚本,请在“项目”窗口中右键单击它,然后选择“运行”或“调试”
重新启动Python控制台的PyCharm以使用arcpro环境。
参考文献
https://gisday.wordpress.com/2016/07/18/setting-up -anaconda-pysal-with-arcgis-python-environment /
评论
这一切都很好,Anaconda软件包在ArcGIS内,反之亦然,但我还有一个问题。如果我尝试先导入arcpy,然后再导入arcpy。在Anaconda中基于RDBMS(Oracle)的要素类上进行描述,那么我会得到IOError:...不存在。在filegeodatabase要素类上运行良好,但似乎无法连接到Oracle(例如arcpy.Describe(r'C:\ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor'))。
–菲尔·佩恩(Phil Penn)
18年5月17日在18:23
#3 楼
要解决此问题,请浏览至python27 \ Lib \ site-packages文件夹,我的文件夹位于“ C:\ Python27 \ ArcGIS10.1 \ Lib \ site-packages”下,然后找到文件Desktop10.1.pth。在我的系统上,只需将Desktop10.1.pth文件复制到“ C:\ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-packages”即可解决此问题。
如果您运行的是Anaconda 64位,则尝试导入arcpy时会遇到不同的错误,因为ArcGIS运行的是32位。因此,必须确保安装的Anaconda是32位而不是64位,以便与ArcGIS相匹配。复制文件后,如果您拥有Anaconda 32位,则可以导入arcpy。
#4 楼
如果您在Anaconda之前安装了Arc,则默认的IDLE,Python窗口(在Arc中)和Python控制台将始终从安装了Arc的模块中拉出,即C:\Python27\ArcGIS <version>\Lib
(和/或)Lib\site-packages
。如果您已经安装了与Anaconda一起安装的软件包,并且希望与Arc的Python安装一起使用,则需要编写.pth文件,以便在Python安装之间共享(轻读)。 例如,我想使用Anaconda中的pandas包。我在Arc的site-packages文件夹中创建了一个文本文件,名为
anaconda.pth
,其中包含C:\Anaconda\Lib\site-packages
的内容,以将Arc-install链接到Anaconda站点包。现在,我可以在Arc安装的Python内部import pandas
而不使用ImportError了。 (如果您在使用numpy时遇到问题,请将Arc安装的numpy
文件夹重命名为_numpy
)。 在另一面,将Arc site-packages文件夹中的
Desktop<version>.pth
文件复制并粘贴到Anaconda的文件中(该文件指定arcpy包的实际位置),然后制作另一个指向您的.pth文件。 Anaconda的Arc site-packages文件夹,因此如果使用它,则可以使用Spyder的Arc的软件包。#5 楼
另一个用户在github上问了类似的问题,您可能对此感兴趣。这是一个用户建议为anaconda导入arcpy自动完成数据的要点:DamnWidget于2月26日评论了https://github.com/DamnWidget/anaconda/issues/284
打开PowerShell或CMD.exe并转到Sublime Text 3%APPDATA%中Packages文件夹下的anaconda安装。将CD放入anaconda_lib文件夹,然后在该路径上启动交互式Python解释器。
复制并粘贴以下内容:
import jedi
print(jedi.Script('import arcpy; arcpy.').completions())
然后(至少对我来说),它在cmd窗口中返回了一堆东西,并且似乎起作用了。我重新打开Sublime Text,它为arcpy函数拉出了自动完成功能。
我的问题是加载它们需要5秒钟以上的时间,似乎永远无法将arcpy加载到内存中的时间超过几个秒。但是我认为那是一个不同的问题...
#6 楼
您应该只安装Anaconda的32位版本。
评论
只是要确保-在cmd提示符下键入“ python”时-它会回显什么版本/安装? (即arcgis或anaconda?)-哎呀,刚刚看到这有点过时了。问题现在解决了。我从Esri UC的开发人员那里听说,Anacondas将内置到ArcGIS 10.5中。我建议只安装您需要的模块,否则可能会造成混乱。
看起来像^是ArcGIS 10.5系统要求中的情况
USGS网站上非常详细的分步指南,使用ESRI python环境中的Anaconda模块