OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません

Zeeshan Afridi 2023年10月10日
  1. OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません とは
  2. OSError: [WinError 193] %1 is not a valid Win32 application が発生する理由
  3. OSError: [WinError 193] %1 is not a valid Win32 application のさまざまな理由と解決策
OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません

実行可能 (.exe) ファイルを実行しようとすると、エラーが発生します。 このエラーは、実行可能ファイルが有効な Win32 アプリケーションでない場合に発生します。

ローカル コンピューターのプロセッサ アーキテクチャと実行可能ファイルのアーキテクチャの不一致が原因である可能性があります。 .exe ファイルをダブルクリックすると、次のエラー メッセージが表示される場合があります。

Error: oserror: [winerror 193] %1 is not a valid win32 application.
Error loading %

OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません とは

Python で開発する際の最大のフラストレーションの 1つは、Python エラーの処理です。 Python コードを記述するときに発生する可能性のあるさまざまなエラーが多数ありますが、対処するのに最も混乱するエラーの 1つは、OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありませんです。

このエラーは、コンピューターに正しくインストールされていない Python スクリプトまたはプログラムを実行しようとすると発生します。

コマンド ラインから Python スクリプトを実行しても、Python に関連付けられたファイルをダブルクリックしても、エラーが発生します。 このエラーは、Python コードにエラーがあることを示す構文エラーやその他のエラーとも異なります。

このエラーは通常、コンピューターの Python 実行可能ファイルまたは .pyd ファイルへのパスが正しくないことが原因で発生します。

OSError: [WinError 193] %1 is not a valid Win32 application が発生する理由

ブラウザで新しいウィンドウを開くたびに、開こうとしているアプリケーションが有効な Win32 アプリケーションではないというエラー メッセージが表示されることがあります。 このエラーは Internet Explorer ブラウザーで発生します。つまり、開こうとしているファイルが有効なアプリケーションではないことを意味します。

ファイル拡張子を変更するだけで、任意のファイルを有効な Win32 アプリケーションとしてマークできるため、これは重大なセキュリティ ホールになる可能性があります。 これは、一般的なファイル編集ソフトウェアを使用して行うのは非常に簡単です。

したがって、注意しないと、関係のないファイルを開くことになります。 このエラーが発生する最も一般的な理由の 1つは、アプリケーションではないファイルを開こうとしていることが原因です。

たとえば、拡張子が .html の HTML ファイルがある場合、それは機能しません。 ブラウザでファイルを開くには、ファイル拡張子を.exeに変更する必要があります。

別の理由として、ファイルが破損しているか、その他の問題がある可能性があります。 この場合、ソースからファイルを再度ダウンロードして、コンピューターで開いてみてください。

OSError: [WinError 193] %1 is not a valid Win32 application のさまざまな理由と解決策

以下は、エラーの理由と解決策です。

Python ファイルの Python subprocess モジュール

Python ファイルで Python subprocess モジュールを呼び出しています。 Python subprocess モジュールは、コマンド ライン引数のみを受け入れます。

Python コードを実行するには、subprocess モジュールを介して実行できる Win32 実行可能ファイルを作成するか、スクリプトとして実行して Python コードで subprocess モジュールを使用する必要があります。

OSError の例があります。 このコードは OSError を表示し、このエラーの解決策を提供します。

import subprocess

subprocess.call(["hello.py", "htmlfilename.htm"])

出力:

OSError: [WinError 193] %1 is not a valid Win32 application

このシナリオでは、Python インタープリター内で subprocess を使用して Python ファイル hello.py を呼び出すと、OSError が表示されます。

これは、hello.py が実行可能でないことを示します。 実行するには、実行可能ファイルは次のように明確である必要があります。

subprocess.call(["python.exe", "hello.py", "htmlfilename.htm"])

python.exe を検索パスで表示したい場合は、python.exe アドレスを実行する実行可能ファイルからパス全体を渡す必要があります。

import sys
import subprocess

subprocess.call([sys.executable, "hello.py", "htmlfilename.htm"])

Python と TensorFlow の互換性のないバージョン

Python と TensorFlow の互換性のないバージョンは、OSError の理由です。 Python と TensorFlow のバージョンに互換性がないため、このアプリケーションは機能を停止しました。

これは、TensorFlow がビルドされた Python のバージョンとは異なるバージョンの Python がコンピューターにインストールされている場合に発生する可能性があります。 これを修正するには、TensorFlow を再インストールし、PATH 変数を更新して正しい Python インストールを指すようにします。

Windows で TensorFlow を使用して Python スクリプトを実行すると、問題が発生することがあります。 OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません が表示された場合; これは、TensorFlow が 64 ビット アプリケーションであるのに対し、Python は 32 ビットであり、32 ビット バージョンの Python を 64 ビット TensorFlow で実行しようとしているために発生します。

これを修正するには、TensorFlow の 32 ビット バージョンをインストールする必要があります。

Python 環境の紛争

Python 環境の更新は、32 ビットと 64 ビットの 2つの異なるバージョンの Python 環境が利用できるため、少し面倒です。 また、多くの人が Python 環境の更新に失敗しています。

この障害により、Python 環境が誤動作し、コンピューターがクラッシュする可能性があります。 コンピュータで Python 環境を使用している場合は、できるだけ早く更新する必要があります。

Python 環境を使用していない場合は、Python 環境の利点に関する記事を確認してください。

Python スクリプトを実行するには、クリーンな Python 環境が最適です。 Python スクリプトの実行中に Windows エラー OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません が発生する場合は、Python のインストールに問題がある可能性が高くなります。

そのため、Python 環境がクリーンであることを確認する必要があります。

Python をインストールすると、デスクトップと [スタート] メニューのそのフォルダーにショートカットが追加されます。 また、サードパーティの Python モジュールをインストールできる pip もインストールします。

ただし、Python は、インストールしたすべてのモジュールの記録を保持します。 これにより、Python を更新する前にこれらのモジュールを削除する必要があるため、Python インストールの更新が難しくなる可能性があります。

そのため、Python インストール ファイルを含むフォルダーを削除する必要があります。 多くの人にとって、このフォルダーは C:\Python27 です。

32 ビット DLL ファイルを 64 ビット プロセスに呼び出す

32 ビット DLL ファイルを 64 ビット プロセスに呼び出しています。 このエラーは通常、32 ビット バージョンと 64 ビット バージョンの DLL がある場合に発生します。

たとえば、使用しようとしている機能が 32 ビット DLL と 64 ビット DLL に含まれているとします。 64 ビット DLL は、32 ビット DLL の機能をオーバーライドします。

このエラーは、32 ビット DLL を使用して 64 ビット プロセスを実行しているときに表示されます。

64 ビット オペレーティング システムで 32 ビット アプリケーションを実行する際に発生する最も一般的なエラーの 1つは、OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありませんというエラー メッセージです。 エラー メッセージには、実行しようとしているアプリケーションの代わりに %1 があります。

有効な Win32 アプリケーションではないアプリケーションを実行しようとすると、エラーがポップアップ表示されます。 アプリケーションが 32 ビット アプリケーションの場合は、32 ビット バージョンのアプリケーションをインストールする必要があります。

アプリケーションが 64 ビット アプリケーションの場合は、64 ビット バージョンのアプリケーションをインストールする必要があります。

Semgrep を直接実行する

Windows で直接 Semgrep を起動しようとすると、非常に煩わしい場合があります。 OSError を引き起こす可能性があります。

そのため、Windows 上で直接 semgrep を実行することは避けてください。

[スタート] メニューに移動すると、Semgrep.exe アプリケーションは表示されません。 Semgrep は典型的な Windows アプリケーションではなく、コンソール アプリケーションであるため、存在しません。

Windows で直接 Semgrep を使用する場合は、cmd ウィンドウから起動する必要があります。 最も簡単な方法は、Windows キーを押しながら R キーを押すことです。

これにより、実行プロンプトが開きます。 この時点で、cmd と入力して Enter を押します。

コマンド プロンプトが表示されます。 Semgrep がインストールされているディレクトリに移動し、semgrep と入力します。

古いデータのため

PyCharm の最後のインストールからの古いデータは、OSError を引き起こす可能性があります。 したがって、このエラーを回避するには、この解決策に従う必要があります。

次のディレクトリに PyCharm の以前のインストールからの古いデータがあります: C:\Users\<your_name>\.ipython profile_default\history\

このディレクトリには、以前のバージョンの PyCharm が作成したファイルが含まれており、古いファイル (たとえば、以前のバージョンの PyCharm によって生成された名前のファイル) を含めることができます。

今後このディレクトリが作成されないようにするには、プロファイル設定で.ipython ディレクトリを作成しないオプションを選択します。 これは、ディレクトリに既に存在するファイルの履歴には影響しないことに注意してください。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python Error