如何从Enthought Canopy访问Esri ArcPy模块?


10

我的Windows系统上运行了ArcGIS 10.1,并且还安装了新的32位Canopy Express Enthought Python发行版。

是否可以从Canopy加载和使用Esri ArcPy模块?


我使用第一个答案的解决方案并完美地工作,但我需要冠层x64,有什么办法可以在冠层x64上导入此库吗?
ΜανώληςΠαναγιωτάκης

Answers:


20

有一种简单的方法,不涉及与系统PATH或PYTHONPATH混淆。

包括Canopy x32在内的Enthought Python发行版是独立的,不需要注册表或环境变量中的任何内容。因此,它们可以与其他Python发行版(例如ArcGIS 10.1随附的发行版)一起很好地发挥作用。

要从Enthought Canopy访问ArcGIS 10.1 python模块:在Canopy用户目录中创建一个指向ArcGIS 10.1 python模块的“路径”文件。在我的系统上,我创建了一个arcpy.pth包含以下4行的文本文件:

# .pth file for arcpy
C:\ArcGIS\Desktop10.1\bin
C:\ArcGIS\Desktop10.1\arcpy
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

并放入arcpy.pthCanopy User site-packages目录:

C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\lib\site-packages

要从ArcGIS 10.1访问Enthought Canopy模块:在Arc site-packages文件夹中创建一个指向Canopy python模块的“路径”文件。在我的系统上,我创建了一个epd.pth包含以下三行的文本文件:

# .pth file for EPD Canopy
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\Lib\site-packages
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\System\Lib\site-packages

然后放入epd.pthArc site-package文件夹中:

C:\Python27\ArcGIS10.1\Lib\site-packages

这就是我要做的!

-丰富

PS之所以有效,是因为Enthought Canopy 1.0和ArcGIS10.1处于同一版本的Python(2.7)和Numpy(1.6.1)。希望我们可以继续保持这种兼容性!

更新:我只是使用Canopy 1.0.3(使用Numpy 1.7.1)进行了尝试,即使ArcGIS 10.1处于Numpy 1.6.1,它仍然可以工作。欢呼!pp!


3
一些注意事项:1.确保已安装EPD / Canopy x32与ArCGIS Desktop一起使用。2. pth文件按字母顺序加载,因此为了避免冲突,我将这些文件命名为:“ zzArcGIS.pth”(Canopy站点软件包文件夹)和“ zzEPD.pth”(ArcGIS站点软件包文件夹)。3.如果您使用的是ArcGIS Desktop x64 Background GP或ArcGIS Server(使用Python x64),则需要安装64位EPD / Canopy并添加指向64位EPD和ArcGIS Python网站包文件夹的.pth文件。 。
柯蒂斯价格

3

是的。这是内部安装指南的摘录,该指南仅用于在我的计算机上执行相同的操作(请确保这些适用于您的特定计算机):


为EPD配置环境

  1. 在用户变量中添加新的PATH(将epd放在PATH之前):

    (根据您使用的EPD或ArcGIS版本编辑以下路径) PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%

  2. 如果已安装ArcGIS,请设置PYTHONPATH环境变量,以便
    ArcGIS可以导入EPD模块,而EPD可以导入ArcPy:

    PYTHONPATH= C:\Python27_epd32\lib\site-packages; C:\ArcGIS\Desktop10.1\bin; C:\ArcGIS\Desktop10.1\arcpy; C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

如果您遇到ArcGIS与EPD冲突的问题,可以通过在PYTHONPATH中删除对EPD的引用,轻松地将EPD从ArcGIS环境中删除。


免责声明! 尽管以下步骤过去对我有用,但我不是一个非常精通DOS的人,如果您咨询IT部门的某人以确保我不会提供糟糕的建议,我会感觉更好。话虽如此,请继续阅读...

使用DOS命令提示符(“所有程序”>“附件”>“命令提示符”),将路径添加到环境变量非常简单。您将使用命令setx来永久地改变你PATHPYTHONPATH环境变量。

在命令提示符下,键入“ echo %PATH%”;它将打印出作为PATH变量的字符串。实际上,它只是一长串字符。现在尝试使用PYTHONPATH变量来查看其中的内容。您会注意到这些变量中的每个路径都以分号(;)分隔。当我们向这些变量添加新路径时,我们必须包括这些。

在此处输入图片说明

本质上,您要做的就是告诉计算机您希望新变量PATHPYTHONPATH变量等于一些新字符串(路径)(如C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;)以及已存储在变量中的变量。

您将执行的用于设置PATH变量的命令为:( setx PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%确保这些路径适用于您的系统)

在此处输入图片说明

您将执行的用于设置PYTHONPATH变量的命令为:( setx PYTHONPATH=C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;C:\ArcGIS\Desktop10.1\arcpy;C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts;%PYTHONPATH%确保这些路径适用于您的系统)

注意:确保在相应命令的末尾添加“ %PATH%”和“ %PYTHONPATH%”。否则,您将仅使用新路径覆盖这些变量,并且将丢失当前内容。


谢谢,杰森!但是,我需要更多有关如何执行此操作的详细信息-如何编辑用户变量?
SharonB 2013年

在DOS命令提示符下,您将要使用SETX命令(stackoverflow.com/questions/8358265/…的第二个答案)将路径永久地放在PATH和PYTHONPATH变量的前面。如果我没记错的话,也可以通过某些管理工具来执行此操作,但是我在工作计算机上没有使用它们的权限,因此通常使用DOS窗口。
杰森

再次感谢您……作为Python新手,主要在IDLE中工作(从未接触过DOS命令提示符),我不知道/如何添加新的PATH和PYTHONPATH环境变量。也许是屏幕截图和/或通过GUI(而不是DOS)执行此操作的选项?
SharonB

哇 谢谢。这令人印象深刻。非常感谢,我会让你知道如何进行。
SharonB

呵呵,这是一个简单的过程,但是由于所有路径,看起来都很复杂!希望您的所有工作顺利进行!
杰森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.