Pythonでexe化! Pyinstallerでコンソール非表示にする方法

Pyinstallerでコンソールを非表示にする方法について紹介します。
Pyinstallerって何?って方は以下をまず見てみてください。

何も考えずに、Pyinstallerでexe化けるすると、実行と同時にコンソールが表示されてしまい、これうっとおしいなぁと思っている方もいるかと思います。
そこで、今回はこのコンソール表示をしないようにする方法について記載します。

コマンドオプションでやる方法

簡単です。オプションで、”–noconsole”オプションをいれてPyinstallerを実行すればいいです。

オプションなし

pyinstaller ollama.py --onefile

※ollama.pyは、exe化したいプログラム ”–onefile”は単独で実行できる形式にするためのものです。

オプションあり

pyinstaller .\ollama.py --onefile --noconsole

”–noconsole”をいれることで、コンソールが表示されなくなります。
※多分しないと思いますが、StandardInを使うようなプログラムではエラーとなるので、注意してください。

specファイルを使う方法

pyinstallerは、Specファイルを使用して実行ファイルを作成する方法も可能なので、そちらでのやり方も記載しておきます。

まずは、Pyinstallerを実行することで標準で作成されるのが、以下です。

# -*- mode: python ; coding: utf-8 -*-


a = Analysis(
    ['ollama.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='ollama',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

このファイルの中の console=True の部分をFalseにします。
以下の通りです。

# -*- mode: python ; coding: utf-8 -*-


a = Analysis(
    ['ollama.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='ollama',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

これで、Specファイルを指定して実行すれば、specファイル指定するだけで毎回同じオプションで作成できます。

以下のコマンドです。

pyinstaller ollama.spec

まとめ

今回は、pyinstallerの小ネタです。でも結構コンソールが表示されてうっとおしいなぁと思っている方もいるとおもいますので、ぜひ試してみてください。
ちなみに、コンソール非表示にしてもexeの生成ファイルが小さくなったりはしないので、ご注意ください。
容量減らしたい場合は、以下を試してみてください。

最後に、Pythonの基礎を学びたい方は以下がおすすめです。私も持っていてたまに眺めて勉強していますものですのでぜひ購入して学習してみてください。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村