使用IDLE时避免导入arcpy错误(RuntimeError:NotInitialized)?


11

ArcGIS版本:ArcGIS 10,Python 2.6.5计算机:Windows 7 64位(Intel)

使用IDLE(gui和cmd提示符)导入arcpy以及使用pythonwin时,出现以下错误。

我从系统中删除了python26和python25,并重新安装了ArcGIS 10和python。因此,我要从此处调用IDLE:“ C:\ Python26 \ ArcGIS10.0 \ pythonw.exe”

错误:

**空闲2.6.5

从地理处理中导入arcpy追溯(最近一次调用为最新):文件“”,行1,在导入arcpy文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy__init __。py”中,行17从_base导入gp文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing__init __。py”,第14行*文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10 .0 \ arcpy \ arcpy \ geoprocessing_base.py“,第568行,在env中= GPEnvironments(gp)文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing_base.py”,第565行,在GPEnvironment中返回GPEnvironment(geoprocessor)文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing_base.py”,第521行,初始化 self._refresh()文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy \ geoprocessing_base.py”,第523行,在_refresh envset =(set(env for self中的env ()))RuntimeError:NotInitialized **

EsriUK和Esri技术支持建议重新安装和注册表编辑=,但这没有用。我正在等待他们的解决方案。

我调查了这是否是模块arcpy路径问题。Esri论坛ArcGIS帮助中有关路径的链接有两个。另外,gis.stackexchange上可能的相关线程。

我在Esri论坛主题上遵循了来自“ kimo”的建议。但是仍然是导入错误。

  1. 我的系统变量(已编辑)是:PYTHONPATH =“ c:\ python26”;“ C:\ Python26 \ ArcGIS10.0”;“ C:\ Python26 \ ArcGIS10.0 \ Lib \ site-packages”;“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy“

  2. 我已经检查了“ C:\ Python26 \ ArcGIS10.0 \ Lib \ site-packages \ Desktop10.pth”的内容。内容为:C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ bin C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ ArcToolbox \ Scripts

但是,追溯消息显示在以下文件夹中找到一个.py脚本:C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ arcpy。因此,建议arcpy模块由解释器找到,但未初始化(?)。

可以从ArcMap和ArcCatalog中的Python窗口调用Arcpy。只有从Python解释器调用时,“ import arcpy”才会失败。因此,ArcMap / ArcCatalog可以将arcpy设置为正常,但IDLE不能将其设置为true-怎么可能?

我以前安装了python25,然后安装了python26,然后又升级到ArcGIS10。因此,我的机器上有很多旧版python。但是,我已经卸载了所有文件,并使用ccleaner清理了注册表。

谁能提出另一条查询线,因为我对python的经验不足以解决初始化/运行时错误?我也想避免重新安装操作系统!



1
该链接帮助我。我在导入arcpy行之前添加了导入arcserver。myarcgisserver.wordpress.com/2014/04/04/…–
G ...... T ......

Answers:


5

在这里和ESRI论坛上查看您的帖子,我认为您的环境设置有些混乱。

您想将C:\ Python26 \ ArcGIS10.0放入系统PATH变量中,该变量可让您从IDLE,PythonWin或命令行使用正确的可执行文件。

您的PYTHONPATH可能为空。或者,您可以只包含Desktop10.pth文件的3节:C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ bin C:\ Program Files;(x86)\ ArcGIS \ Desktop10.0 \ arcpy; C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ ArcToolbox \ Scripts-然后这些路径将优先于默认的模块搜索(在python.exe或pythonw.exe下面)搜索。

最后,由于您已经卸载并安装了多个版本的Python。此时,除了ESRI提供的Python 2.6.5 32位安装程序的ArcGIS10.0文件夹外,C:\ Python26文件夹下应该没有任何内容。如果有一个Lib文件,则它是较早安装的剩余部分,并且会造成干扰。如果任何一个或您先前安装的Python26是64位的,这将是一个更大的问题。

另外,由于您使用的是64位Windows 7,因此32位Python密钥的注册表路径为HKLM \ SOFTWARE \ Wow6432Node \ Python如果您有HKLM \ SOFTWARE \ Python,则它们将是64位密钥安装。它们还会干扰32位安装。


嗨,斯图尔特。谢谢(你的)信息。我已经在forums.arcgis.com上回复了,山姆
弗兰克林(2011年

geoprocessing_base.py被发现的事实(请参阅堆栈跟踪)强烈表明找到模块没有问题,这消除了您建议进行修改PYTHONPATH。如果两者都启用,PATH则64和32之间的Python可能只会发生冲突。但是,如果已删除64位版本,则它们可能无法启用PATH。(即使位置仍然存在PATH,也找不到任何东西了。)
jpmc26

5

在新环境中设置脚本时遇到了这个问题。...我忘记了使用ArcGIS Administrator设置许可证管理器服务器。


2

做这个

  1. 打开arcgis应用程序管理器
  2. 设置许可证管理器

查看每个许可证级别有多少个可用。如果您希望arcpy签出特定的许可证级别,则需要这样的代码

import arcview
import arcpy

嗨-尝试导入arcview。收到以下错误。但是,我可以使用arcpy吗?>>>导入arcview追溯(最近一次调用):<模块>中第1行的文件“ <pyshell#3>”,导入arcview文件“ C:\ Program Files(x86)\ ArcGIS \ Desktop10.0 \ arcpy \ <module> gp.setProduct(“ ArcView”)中arcview.py“,第18行,RuntimeError:错误999999:执行函数时出错。>>> import arcpy >>>我在以下位置提供了完整的答案:bit.ly/ggtlio,可以在其中附加屏幕截图并提供更完整的答案。
SamFranklin'2

2

这就是我所做的,Path和PYTHONPATH环境变量

这对我来说足够了。

我使用了PyScripter,但是我已经下载了2.7版本,有必要使用python 2.6的PyScripter来确保导入arcpy不会出错


0

就我而言,我没有直接连接到网络或通过VPN来验证ArcGIS License。连接到网络后,错误“ RuntimeError:NotInitialized”已解决,脚本成功运行。

虽然,您确实需要... 1)打开arcgis应用程序管理器2)设置许可证管理器...如gotchula所述

希望这可以帮助!

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.