exeファイルは、Pythonプログラムの実行フルディスク温度を作りました

著作権:いいえ著作権は、https://blog.csdn.net/MAOZEXIJR/article/details/91044472への無料転載します

まず、どのようにPythonのexeファイルをオンにします

1、インストールpyInstallerの

pip insatll pyinstaller

2、pyInstallerの

(1)フォルダにパッケージ

pyinstaller -D xx.py

(2)ファイルにパッケージ

pyinstaller -F xx.py

(3)サードパーティのライブラリ(例えばPyQt5)包装場合

pyinstaller --paths 库路径 -F -w xx.py

 

第二に、倉庫の爆発の原因と解決策

1、現象

Xx.exeは、ディスクのフォルダに頻繁に呼び出し後に発見された\ WINDOWS \温度:Cまたは  C:\ユーザーは、のAppData \ローカル\ \ \ Tempにユーザ名と命名多数の下で発生_MEIxxxxのファイルフォルダ、ほぼいっぱいのディスクを

 

2、理由

次のようにpyInstallerの擬似公式説明は次のとおりです。

「公式」リンク:https://pyinstaller.readthedocs.io/en/v3.3.1/operating-mode.html

 

3、解決するために

(1)スキーム

方法:自動的に削除権限不足が発生していない避け、倉庫の爆発のパスを指定します。

長所:心の平和を取得

短所:不安定、梱包指示複雑なポイント

pyinstaller --runtime-tmpdir 指定爆仓路径 -F xx.py

 

(2)スキームII

方法:使用現在実行中のプログラムへの動的アクセス_MEIxxxx  パス、実行os.remove後

利点:サシバエ

短所:ライト・コード

# !/usr/bin/python3
# coding: utf-8
import gc
import os
import sys
import traceback

this = os.path.abspath(os.path.dirname(__file__))
module = os.path.split(this)[0]
print('sys.path.append("%s")' % module)
sys.path.append(module)
for i, val in enumerate(sys.path):
    print("[%s] %s" % (i + 1, val))


def delMEI():
    for index, path in enumerate(sys.path):
        basename = os.path.basename(path)
        if not basename.startswith("_MEI"):
            continue

        drive = os.path.splitdrive(path)[0]
        if "" == drive:
            path = os.getcwd() + "\\" + path
            path = path.replace("\\\\", "\\")

        if os.path.isdir(path):
            try:
                print("remove", path)
                os.remove(path)
            except:
                pass
            finally:
                break


if __name__ == '__main__':
    try:
        print("Start to xx..")
        # do something
        print("End of the xx")
    except:
        traceback.print_exc()
    finally:
        gc.collect()
        delMEI()

 

おすすめ

転載: blog.csdn.net/MAOZEXIJR/article/details/91044472