From 9a335d7e315781eb3628637c0e1ef440105fd059 Mon Sep 17 00:00:00 2001 From: arkohut <39525455+arkohut@users.noreply.github.com> Date: Sun, 29 Sep 2024 23:29:44 +0800 Subject: [PATCH] feat: use pyinstaller --- build_executable.py | 57 +++++++++++++++++++++++++++++++++++++++++++++ memos_app.py | 4 ++++ 2 files changed, 61 insertions(+) create mode 100644 build_executable.py create mode 100644 memos_app.py diff --git a/build_executable.py b/build_executable.py new file mode 100644 index 0000000..0711056 --- /dev/null +++ b/build_executable.py @@ -0,0 +1,57 @@ +import os +import shutil +import subprocess +import site +import magika +from modelscope.hub import snapshot_download # 添加这行来确保 ModelScope 被正确引用 + + +def get_magika_path(): + magika_path = os.path.dirname(magika.__file__) + return magika_path + + +def get_modelscope_path(): + modelscope_path = os.path.dirname(snapshot_download.__file__) + return os.path.dirname(modelscope_path) # 获取 modelscope 的根目录 + + +def build_executable(): + # 获取 magika 的安装路径 + magika_path = get_magika_path() + modelscope_path = get_modelscope_path() + + # 清理旧的构建文件 + if os.path.exists("build"): + shutil.rmtree("build") + if os.path.exists("dist"): + shutil.rmtree("dist") + + # 运行PyInstaller + subprocess.run( + [ + "pyinstaller", + "--name=memos", + "--add-data", + "memos/static:memos/static", + f"--add-data", + f"{magika_path}:magika", + f"--add-data", + f"{modelscope_path}:modelscope", + "--onedir", + "--noupx", + "--clean", + "--strip", + "--hidden-import=modelscope", # 添加隐式导入 + "--hidden-import=modelscope.hub", + "--hidden-import=modelscope.hub.snapshot_download", + "memos_app.py", + ], + check=True, + ) + + print("可执行文件已生成在 'dist' 目录中。") + + +if __name__ == "__main__": + build_executable() diff --git a/memos_app.py b/memos_app.py new file mode 100644 index 0000000..0e3beba --- /dev/null +++ b/memos_app.py @@ -0,0 +1,4 @@ +from memos.commands import app + +if __name__ == "__main__": + app() \ No newline at end of file