我正在尝试按照“如何使用ArcGIS分开Python安装”的答案中的分步指导进行操作,但是在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运行我的脚本。

评论

只是要确保-在cmd提示符下键入“ python”时-它会回显什么版本/安装? (即arcgis或anaconda?)-哎呀,刚刚看到这有点过时了。问题现在解决了。

我从Esri UC的开发人员那里听说,Anacondas将内置到ArcGIS 10.5中。我建议只安装您需要的模块,否则可能会造成混乱。

看起来像^是ArcGIS 10.5系统要求中的情况

USGS网站上非常详细的分步指南,使用ESRI python环境中的Anaconda模块

#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位版本。