「Windowsが指定されたデバイス、パス、またはファイルにアクセスできない」エラーを診断する方法


1

コマンドラインでPythonスクリプトを実行すると、このエラーが発生します

Windowsは、指定されたデバイス、パス、またはファイルにアクセスできません。アイテムにアクセスするための適切な権限がありません。

システムがアクセスしようとするパスを確認するにはどうすればよいですか?システムログ(アプリケーション、セキュリティ、セットアップ、システム)のいずれにもエントリは作成されません。Webで見つけたすべてのソリューションは、ファイルのプロパティの変更に言及しています。この場合の問題は、システムがPythonスクリプトの処理に使用しようとするファイルがわからないことです。どうすればこの情報を見つけることができますか?ここでシステムが開こうとするすべてのファイルを監視するツールが役立つと思います。

詳細

.pyスクリプトの名前(のようなsample.py)を指定するだけでコマンドラインで拡張機能を使用してPythonスクリプトを実行しようとすると、上記のエラーが発生します。問題はファイルの関連付けが悪いためだと思いますが、... reg query HKCR\.py /veギブス(Default) REG_SZ Python.Filereg 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スクリプトを開こうとすることを考えさせます。問題は、この経路が何であるかわからないことです。

64ビットcmd.exe、64ビットPythonを実行するWindows Vista 64ビット。

編集

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結果はありません。システムは、.pyファイルのハンドラーを定義する適切なレジストリエントリを見つけることができないため、Pythonファイルを開くために実行可能ファイルを起動しようとさえしないからだと思います。タイプの全体が178個、タイプのエントリがRegQueryKey141個ありますが、RegQueryValueそれらを読んで結論を出そうとするのは大変です。


「名前が見つかりません」==「ファイルがありません」
ハリージョンストン

プロセスモニターがpython.exeのエントリを表示している場合、Pythonは間違いなく起動されています。
ハリージョンストン

回答:


3

簡単なプロセスモニター入門

  1. プロセスモニターを開きます。
  2. アプリケーションを実行し、エラーが発生するのを待ちます。
  3. アプリケーションのプロセス名を示すエントリのいずれかを右クリックし、「 'yourapp.exe'含める」をクリックして、アプリケーションのフィルターを作成します。
    ここに画像の説明を入力してください
  4. これで、どのような戻り値が表示されるかがわかりました。[ ツール ]メニューを開き、[ 出現回数のカウント ]をクリックします。
    ここに画像の説明を入力してください
  5. 列」フィールドで、「結果」を選択し、「カウント」を押します。
    ここに画像の説明を入力してください
  6. 次に、問題に関連する可能性のあるエラーを探します。
    2つのNO SUCH FILEエラーがありますが、これはおもしろそうです。それをダブルクリックしましょう!
  7. そしてそこに行きます...
    ここに画像の説明を入力してください
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.