Команда Python help('modules') выдает WindowsError в IDLE (idle.pyw), но не в командной строке (python.exe)

Если я наберу следующее в командной строке 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 (32-разрядная версия, работающая на 64-разрядной машине Windows 7) шла в комплекте с 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,

1 ответ

Я просто успешно побежал help('modules') в 2.7.8 и 3.4.2. Ответ зависит от sys.path. Похоже, что ArcGIS добавляет C:/Windows/System32/Msdtc к пути, но вы можете проверить перед запуском справки. В любом случае доступ к этой папке не может быть осуществлен через проводник Windows, даже если он работает от имени администратора. Это требует специальных действий пользователя через "вкладку безопасности". Поскольку MS не хочет, чтобы я там ковырялся, я не стал получать доступ. Я не знаю, почему разница между консолью и холостым ходом.

Другие вопросы по тегам