web-dev-qa-db-ja.com

Pyinstaller .exeによるMatplotlibDeprecationWarning

Pyinstaller実行可能ファイルを実行したときにのみ表示される警告に遭遇しました。

...appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py:627: MatplotlibDeprecationWarning:
The MATPLOTLIBDATA environment variable was deprecated in Matplotlib 3.1 and will be removed in 3.3.
  exec(bytecode, module.__dict__)

私はここですべての提案を試しました: Python/matplotlib:matplotlib.mpl警告を取り除く

私はまた、最終結果を変更せずにこれを試しました: Pyinstaller exeは警告メッセージを非表示にします

最終的な実行可能ファイルに表示されるMatplotlibDeprecation警告に変更はありません。警告は、コードをIDE Pycharmなど)で実行するときに存在しないベースラインです。

使用:Python 3.7.2 Pyinstaller 3.5 Matplotlib 3.1.1

6
blackbird

警告を消したい場合:UserWarningを継承するWarningから非推奨警告が継承されるため、 filter_warnings() fromを使用してフィルタリングできます組み込みの警告パッケージ。これを行うには、matplotlibをインポートする前に次の行をダンプします。

import warnings
warnings.filterwarnings("ignore", "(?s).*MATPLOTLIBDATA.*", category=UserWarning)

(?s)は正規表現フラグDOTALLであり、警告のメッセージ内に含まれる.*sを一致させることができます\ns。

上記のコードの後に​​次のコードを実行することで、PyInstallerビルドの外で実際に機能するかどうかをテストできます。

import os, sys
# Artificially add the MATPLOTLIBDATA environment variable. This is reset
# when you restart your python console.
os.environ["MATPLOTLIBDATA"] = os.path.join(os.path.split(sys.executable)[0], "Lib/site-packages/matplotlib/mpl-data")

# Then proceed to load matplotlib
import matplotlib
1
bwoo