pyinstallerがパッケージ化されました!pyinstaller のパッケージ化パスに問題があります! wordcloud パッケージにストップワード ファイルがありません

wordcloud パッケージにストップワード ファイルがありません

間違った説明

Unhandled exception in script
Failed to execute script'main' due to unhandled exception: (Errno 2] No such file or directory:
'C:\Users\VADMINI\appDatallLocal\Templ\2\ME186322\wordcloud\stopwords'

ここに画像の説明を挿入

解決

wordcloud がインストールされているパスを見つけます。
デフォルトでは、Python インストール パスの下の lib フォルダーにある wordcloud.py は
ここに画像の説明を挿入
次のコードでパッケージ化されています。

STOPWORDS = set(map(str.strip, open(os.path.join(FILE, 'stopwords')).readlines()))

に変更されました

STOPWORDS = set(map(str.strip, open(os.path.join(os.path.dirname(sys.executable), 'stopwords')).readlines()))

exe プログラムの実行時に、exe ファイルの下の同じレベルでストップワード ファイルを検索するように変更します。
次のように、独自の構成要件に応じてファイルの場所を変更できます。

STOPWORDS = set(map(str.strip, open(os.path.join(os.path.dirname(sys.executable), 'config','stopwords')).readlines()))

exe プログラムを実行すると、exe ファイルの下の同じレベルのディレクトリに移動して、config ディレクトリ内のストップワード ファイルを見つけます。

環境の開発時にそれを復元するか、実行時にストップワード ファイルが見つかることを確認する必要があります。

pyinstallerのパッケージパスの問題

Python がリソース ファイルを exe にまとめて説明する (例付き)

次の方法でパスマッピングを直接行い、プロジェクト内の設定ファイルのコピーをexeファイルと同じレベルのディレクトリに直接コピーします。

import os
import sys

def file_address():
    if getattr(sys, "frozen", False):
        BASE_DIR = os.path.dirname(sys.executable)
    else:
        BASE_DIR = os.path.dirname(os.path.abspath(__file__))

    return BASE_DIR

pyinstallerパッケージ

使用するライブラリ

pip install pyinstaller

単一ファイルのパッケージ化

cmd は py プロジェクト ディレクトリに入り、次のコマンドを実行します。

pyinstaller -F -w -i xxx.ico main.py --noconsole

または:

pyinstaller -F -w --icon=xxx.ico main.py --noconsole

-F パラメータはオーバーレイ パッケージ化を意味するため、パッケージ化する際は、何度パッケージ化しても、最新の固定コマンドになります。
-w はウィンドウ プログラムを意味し、
-icon は exe の表示アイコンを設定します。 *.ico ファイルはオンライン ico ベクトル オンライン変換ツールで処理できます。
「main.py」はプログラムのエントリ ポイントです (単一ファイルの場合は、hello.py などのファイル名に置き換えます)。 –noconsole は
cmd ウィンドウを表示しないことを意味し、cmd ウィンドウを表示したい場合は –console に変更します。
一般的に使用されるパッケージ化コマンド:
exe のパッケージ化: pyinstaller -F main.py
コンソールなしのパッケージ化: pyinstaller -F -w main.py
指定された exe アイコンのパッケージ化: pyinstaller -F -i xx.ico main.py

複数のファイルをパックする

cmd は py プロジェクト ディレクトリに入り、次のコマンドを実行します。

pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]

次のように:

pyinstaller -F -w --icon=testIcon.ico main.py -p addres.py -p test1.py -p test2.py --hidden-import addres --hidden-import test1 --hidden-import test2

無事に梱包されました

ここに画像の説明を挿入
プロジェクトのルート ディレクトリに 2 つのフォルダーが生成されます。dist
ここに画像の説明を挿入
フォルダー内に xxx.exe があります。名前は、パッケージ化したメイン ファイル .py に従って命名されます。ダブルクリックして実行します。
設定ファイルがある場合は、開発プロジェクトのディレクトリ構造に従って設定ファイルを確認し、exeと同じディレクトリに配置する必要があります。

Anaconda 仮想環境を使用すると exe ファイルのサイズを削減できると言われていますが、これまでは使用されていませんでしたので、興味のある方は自分で調べてみてください。

おすすめ

転載: blog.csdn.net/god_sword_/article/details/130817025