1

如果我在 python.exe 命令提示符下键入以下内容...

>>>help('modules')

...我得到了预期的可用模块列表。

但是,当我在 IDLE 环境 (idle.pyw) 中键入相同的内容时,它会引发错误:

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
    help('modules')
File "C:\Python27\ArcGIS10.1\lib\site.py", line 467, in __call__
  return pydoc.help(*args, **kwds)
File "C:\Python27\ArcGIS10.1\lib\pydoc.py", line 1727, in __call__
  self.help(request)
File "C:\Python27\ArcGIS10.1\lib\pydoc.py", line 1766, in help
  elif request == 'modules': self.listmodules()
File "C:\Python27\ArcGIS10.1\lib\pydoc.py", line 1887, in listmodules
  ModuleScanner().run(callback, onerror=onerror)
File "C:\Python27\ArcGIS10.1\lib\pydoc.py", line 1938, in run
  for importer, modname, ispkg in pkgutil.walk_packages(onerror=onerror):
File "C:\Python27\ArcGIS10.1\lib\pkgutil.py", line 105, in walk_packages
  for importer, name, ispkg in iter_modules(path, prefix):
File "C:\Python27\ArcGIS10.1\lib\pkgutil.py", line 147, in iter_modules
  for name, ispkg in iter_importer_modules(i, prefix):
File "C:\Python27\ArcGIS10.1\lib\pkgutil.py", line 211, in iter_modules
  for fn in os.listdir(path):
WindowsError: [Error 5] Access is denied: 'C:\\WINDOWS\\system32\\Msdtc/*.*'

为什么 Windows 对 IDLE 说“访问被拒绝”而不是命令行?我曾尝试在 IDLE 上使用“以管理员身份运行”但没有成功。我是否需要以某种方式重新配置 IDLE?

有关信息:

我安装的 Python 2.7.2(在 Windows 7 64 位机器上运行的 32 位版本)与 ArcGIS 10.1 捆绑在一起,它使用 Python 作为脚本语言和某些数值运算(通过 Numpy)。这可能与提示和 IDLE 中的不同行为有关吗?

Python 根目录是:C:\Python27\ArcGIS10.1\.

IDLE 安装在C:\Python27\ArcGIS10.1\Lib\idlelib\idle.pyw.

Python 命令提示符安装在:C:\Python27\ArcGIS10.1\python.exe.

4

1 回答 1

0

help('modules')我刚刚在 2.7.8 和 3.4.2 中都成功运行。响应取决于 sys.path。似乎 ArcGIS 将 C:/Windows/System32/Msdtc 添加到路径中,但您可以在运行帮助之前进行检查。在任何情况下,都无法通过 Windows 资源管理器访问该文件夹,即使以管理员身份运行也是如此。它需要通过“安全选项卡”进行特殊用户操作。由于 MS 不想让我在那里闲逛,所以我没有追求访问权限。我不知道为什么控制台和空闲之间的区别。

于 2014-11-06T04:47:04.310 回答