SP1 for ArcGIS 10.1具有64位Python扩展,用于背景地理处理-对其他Python使用的影响


12

如果安装了用于ArcGIS Desktop 10.1sp164位背景地理处理,这将如何影响一般使用的Python配置?

Esri为ArcGIS 10.1产品发布了SP1,并且为Desktop组件提供了一个64位Python 2.7.2实例,该实例在安装时将Esri 32位Python 2.7调用替换为用于背景地理处理的64位调用(发送的处理)活动的ArcGIS Desktop GUI会话的一侧)。

安装是可选的,即如果没有安装,则ArcGIS Desktop只能继续使用32位用户存储空间。使用它,在Esri程序文件夹中创建一个\ bin64条目,并在“用于桌面背景地理处理(64位)的HKEY_LOCAL_MACHINE \ SOFTWARE \ ESRI \ ArcGIS 10.1 SP1”处建立了用于64位处理的注册表项,然后进行了背景地理处理在64位内存空间中完成。

Esri的32位和现在的64位Python均已安装完整的2.7.2。

在后台地理处理Esri的注册表期间,路径和配置文件将负责调用64位Python可执行文件。在需要时,ArcGIS Desktop会话中保留使用32位Python。

因此,留给每个用户的是决定是否将已安装的64位Python 2.7.2集成到ArcGIS之外的他们的计算需求中。当32位和64位版本的Python都驻留在系统上时,如何最好地做到这一点?

问了另一种方式-Esri负责在其ArcGIS Desktop中集成64位Python,那么对于ArcGIS之外的其余用例,将有哪些方法可以对其进行配置?


只是好奇,您是否使用Process Monitor或类似的工具来监视此软件包的安装?正在考虑自己做。
blah238

不,只是回顾了文件系统和注册表中的更改
V Stuart Foote 2012年

3
在进行64位背景地理处理性能测试之前和之后,我进行了一次快速的测试 -不确定是否只有轻微的(10%)的改进才应该达到预期的效果。
PolyGeo

4
@Arabella-我不希望交换到32位可以使任何事情变得更快,而且链接的10%改进在统计上似乎并不重要。主要区别在于64位版本将允许地理进程使用超过4GB的RAM。其他任何事情都是切线的。
GIS乔纳森(Jonathan)

2
@PolyGeo-从根本上讲,32位和64位之间的核心区别在于32位应用程序不能使用超过4 GB的RAM(它们根本无法解决它-实际上在Windows上更可能是2 GB或3 GB,具体取决于标志和内容)。无论如何,要真正看到32位与64位的优势,您需要执行一项使用超过4GB RAM的测试。当然,ESRI在两个版本之间可能进行了优化,但是32/64位年龄本身仅在核心级别处理RAM使用问题。
GIS乔纳森(Jonathan)

Answers:


1

因此,留给每个用户的是决定是否将已安装的64位Python 2.7.2集成到ArcGIS之外的他们的计算需求中。当32位和64位版本的Python都驻留在系统上时,如何最好地做到这一点?

据我了解,您在问我们可以区分不同版本的python并根据需要使用它的方式。

最简单的方法是准确指定要用于运行脚本的解释器。可以在 SO q / a中找到更多详细信息。


从某种意义上说。但是我对在脚本编写过程中以编程方式执行此操作更感兴趣。如何切换PYTHONHOME和PYTHONPATH,然后通过sys.path.append()调用或site.addsitedir()操作它们,以将系统重新配置为使用32位或64位Python。在SO q / a中建议仅调用一个Python版本或另一个Python版本有点粗略。挑战在于如何灵活地使用站点模块并在IDE中可靠地工作。除了简单的路径和站点包操作之外,还可以通过32位和64位环境的virtualenv进行多个Python配置。
V Stuart Foote,2012年

在你的脚本,你可以尝试通过与使用命令行解释器所需(X32或x64)调用它来调用其他Python脚本的执行模块的例子。
亚历克斯·马可夫

0

对我来说,这是必需的……而且我仍然不确定一切是否都能“正常”运行。安装完64位背景地理处理工具并更改了PYTHONPATH以使用它们之后(例如,默认python),似乎它破坏了insde ArcMap的所有功能(例如32位控制台python)。因此我想出了以下解决方法。青年汽车

1)下载并运行64位背景地理处理工具:幸运的是,我发现了它一次!我似乎再也找不到链接...

2)将以下内容添加到系统PYTHONPATH中(假设默认情况下使用的是64位):; C:\ Python27 \ ArcGISx6410.1 \ DLLs; C:\ Python27 \ ArcGISx6410.1 \ lib; C:\ Python27 \ ArcGISx6410 .1 \ lib \ plat-win; C:\ Python27 \ ArcGISx6410.1 \ lib \ lib-tk; C:\ Python27 \ ArcGISx6410.1; C:\ Program Files(x86)\ ArcGIS \ Desktop10.1 \ bin64; C:\ Program Files(x86)\ ArcGIS \ Desktop10.1 \ arcpy; C:\ Program Files(x86)\ ArcGIS \ Desktop10.1 \ ArcToolbox \ Scripts

3)为Arcmap Python创建启动脚本,这样就不会与从PYTHONPATH导入的64位混淆

import sys
if sys.executable in ['C:\\Python27\\ArcGIS10.1\\python.exe', 'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\bin\\ArcMap.exe']:
    print('Resetting Path')
    sys.path = [
        #python32 for ESRI
        'C:\\windows\\system32\\python27.zip',
        'C:\\Python27\\ArcGIS10.1\\DLLs',
        'C:\\Python27\\ArcGIS10.1\\lib',
        'C:\\Python27\\ArcGIS10.1\\lib\\plat-win',
        'C:\\Python27\\ArcGIS10.1\\lib\\lib-tk',
        'C:\\Python27\\ArcGIS10.1',
        'C:\\Python27\\ArcGIS10.1\\lib\\site-packages',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\bin',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\arcpy',
        'C:\\Program Files (x86)\\ArcGIS\\Desktop10.1\\ArcToolbox\\Scripts',
        #defaults
        'C:\\Python27\\Lib\\',
        'C:\\Python27\\Lib\\site-packages',
        'C:\\pythonnet'
        ]

import arcpy 
from arcpy import env

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.