PyInstaller、仕様ファイル、モジュール名なし
はじめに
Python スクリプトをビルドする場合PyInstaller を使用すると、「名前が付けられたモジュールがありません」というエラー メッセージが表示される場合があります。このエラーは、必要なモジュールが実行可能ファイルに含まれていないことを示します。
問題
この特定のケースでは、--onefile オプションを使用して単一の実行可能ファイルを作成します。 PyInstaller によって生成された myscript.spec ファイルには、必要なモジュールがすべて含まれていないため、「モジュール名がありません」エラーが発生します。
解決策
オプション 1:動的インポート
コードに動的インポートが含まれている場合 (つまり、実行時にインポートされるモジュール)、PyInstaller はそれらを自動的に含めることができない場合があります。これらのモジュールが確実に含まれるようにするには、それらの未使用のインポートをコードに追加します。
import mysql # Unused import import urllib2 # Unused import
オプション 2: 明示的にインクルード
したくない場合未使用のインポートを追加すると、必要なモジュールを明示的に含めるように PyInstaller に指示できます。 myscript.spec ファイルの分析セクション内に次の行を追加します:
binaries = [('mysql.so', '.') ...] # Include the MySQL library
他の不足しているモジュールがある場合はこの手順を繰り返します。
--onefile に関する注意
--onefile オプションは、実行可能ファイルの機能には影響しません。これは、PyInstaller によって作成されたすべての中間ファイルを実行可能ファイルにパックするだけであり、実行可能ファイルの実行時に一時ディレクトリに解凍されます。
以上がPyInstaller の --onefile オプションを使用すると、「名前付きモジュールがありません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。