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