1

При запуске скрипта 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 ответ1

3

Быстрый учебник для начинающих

  1. Откройте Process Monitor.
  2. Запустите ваше приложение и дождитесь появления ошибки.
  3. Создайте фильтр для своего приложения, щелкнув правой кнопкой мыши любую запись, отображающую имя процесса вашего приложения, и нажав Включить «yourapp.exe».
  4. Теперь посмотрим, какие возвращаемые значения вы получили. Откройте меню « Инструменты» и нажмите « Количество вхождений».
  5. В поле « Столбец» выберите « Результат» и нажмите « Количество».
  6. Теперь найдите ошибку, которая может быть связана с вашей проблемой.
    У нас 2 ошибки ТАКОГО ФАЙЛА , это звучит интересно. Давайте дважды щелкните по нему!
  7. И там мы идем ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .