コマンドラインでPythonスクリプトを実行すると、このエラーが発生します
Windowsは、指定されたデバイス、パス、またはファイルにアクセスできません。アイテムにアクセスするための適切な権限がありません。
システムがアクセスしようとするパスを確認するにはどうすればよいですか?システムログ(アプリケーション、セキュリティ、セットアップ、システム)のいずれにもエントリは作成されません。Webで見つけたすべてのソリューションは、ファイルのプロパティの変更に言及しています。この場合の問題は、システムがPythonスクリプトの処理に使用しようとするファイルがわからないことです。どうすればこの情報を見つけることができますか?ここでシステムが開こうとするすべてのファイルを監視するツールが役立つと思います。
詳細
.py
スクリプトの名前(のようなsample.py
)を指定するだけでコマンドラインで拡張機能を使用してPythonスクリプトを実行しようとすると、上記のエラーが発生します。問題はファイルの関連付けが悪いためだと思いますが、... 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スクリプトを開こうとすることを考えさせます。問題は、この経路が何であるかわからないことです。
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個、タイプのエントリがRegQueryKey
141個ありますが、RegQueryValue
それらを読んで結論を出そうとするのは大変です。