PyInstaller: Onefile ビルドでの ImportError "No Module Named" の解決
PyInstaller を使用して Python スクリプトをビルドすると、一般的にエラーが発生します「インポートエラー: ... という名前のモジュールがありません。」この問題は、PyInstaller が生成された実行可能ファイルに依存関係を含めることに失敗した場合に発生します。
このエラーの一般的な原因の 1 つは、動的インポートです。コードがモジュールを動的に (つまり、実行時に) インポートすると、PyInstaller がモジュールを認識しないため、実行可能ファイルから除外される可能性があります。これを解決するには、次の 2 つのオプションがあります。
1.未使用のモジュールを手動でインポート:
コード内に不足しているモジュールの未使用のインポート ステートメントを追加します。これにより、明示的に使用されていない場合でも、PyInstaller に強制的にモジュールが組み込まれます。
2.オプションの依存関係を指定します:
*.spec ファイルの hiddenimports パラメーターを使用して、特定のモジュールを含めるように PyInstaller に明示的に指示します。たとえば、スクリプトが mysql と urllib2 をインポートする場合、*.spec ファイルに以下を追加します:
hiddenimports = ['mysql', 'urllib2']
注: PyInstaller の --onefile オプションは、依存関係が含まれていること。これは、必要なすべてのファイルを 1 つの実行可能ファイルにバンドルし、実行中に一時的に解凍するだけです。
これらの手順に従うことで、PyInstaller で生成された実行可能ファイルが依存関係を解決し、期待どおりに実行されることを確認できます。
以上がPyInstaller Onefile ビルドで「ImportError: No Module Named」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。