Как диагностировать ошибку "Windows не может получить доступ к указанному устройству, пути или файлу"?
При запуске скрипта Python из командной строки я получаю эту ошибку
Windows не может получить доступ к указанному устройству, пути или файлу. У вас нет соответствующих прав доступа к элементу.
Как я могу проверить, по какому пути система пытается получить доступ? Записи не создаются ни в одном из системных журналов (Приложение, Безопасность, Настройка, Система). Все решения, которые я нашел в Интернете, упоминают изменение свойств файла. Проблема в этом случае, я не знаю, какой файл пытается использовать система для обработки скрипта Python. Как я могу найти эту информацию? Я думаю, что инструмент, который контролирует все файлы, которые пытается открыть система, может помочь здесь.
подробности
Когда я пытаюсь запустить скрипт Python с .py
расширение в командной строке, просто указав имя скрипта (например, sample.py
) Я получаю вышеуказанную ошибку. Я думаю, что проблема из-за плохой ассоциации файлов, но... работает reg query HKCR\.py /ve
дает (Default) REG_SZ Python.File
а также reg query HKCR\Python.File\shell\open\command /ve
дает
(Default) REG_SZ c:\python\2.7\python.exe "%1" %*
и файл c:\python\2.7\python.exe
существует, и я могу запустить его из командной строки без проблем. Это заставляет меня думать, что система пытается открыть скрипт Python, используя другой путь в реестре. Проблема в том, что я понятия не имею, что это за путь.
Windows Vista 64-битная, работает 64-битный cmd.exe, 64-битный Python.
РЕДАКТИРОВАТЬ
Process Monitor очень полезен, но я все еще не могу найти точную причину, вызывающую проблему. При попытке запустить скрипт Python генерируется 866 записей:
BUFFER TOO SMALL 1
END OF FILE 1
FILE LOCKED WITH ONLY READERS 12
NAME NOT FOUND 301
NO MORE ENTRIES 4
REPARSE 5
SUCCESS 542
Нет никаких NO SUCH FILE
результат. Я думаю, это потому, что система даже не пытается запустить исполняемый файл для открытия файла Python из-за невозможности найти подходящую запись реестра, определяющую обработчик для .py
файлы. Есть 178 поступлений типа RegQueryKey
и 141 запись типа RegQueryValue
но я с трудом пытаюсь сделать какой-либо вывод, читая их.
1 ответ
Быстрый учебник для начинающих
- Откройте Process Monitor.
- Запустите ваше приложение и дождитесь появления ошибки.
- Создайте фильтр для своего приложения, щелкнув правой кнопкой мыши любую запись, отображающую имя процесса вашего приложения, и нажав Включить "yourapp.exe".
- Теперь посмотрим, какие возвращаемые значения вы получили. Откройте меню " Инструменты" и нажмите " Количество вхождений".
- В поле " Столбец" выберите " Результат" и нажмите " Количество".
- Теперь найдите ошибку, которая может быть связана с вашей проблемой.
У нас 2 ошибки ТАКОГО ФАЙЛА, это звучит интересно. Давайте дважды щелкните по нему! - И там мы идем...