Команда 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 не хочет, чтобы я там ковырялся, я не стал получать доступ. Я не знаю, почему разница между консолью и холостым ходом.