著作権:いいえ著作権は、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()