87 lines
2.6 KiB
Python
87 lines
2.6 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
|
|
# 导入 os 模块以更好地处理路径
|
|
import os
|
|
from PyInstaller.utils.hooks import collect_all
|
|
|
|
# --- 数据文件和二进制文件 ---
|
|
# 路径分隔符已更正为 '/',这在所有平台上都更具兼容性
|
|
datas = [
|
|
('./docutranslate/static', 'docutranslate/static'),
|
|
('./docutranslate/template', 'docutranslate/template')
|
|
]
|
|
binaries = []
|
|
hiddenimports=['markdown.extensions.tables','pymdownx.arithmatex','pymdownx.superfences','pymdownx.highlight','pygments']
|
|
|
|
# 使用 collect_all 来收集依赖
|
|
# 这部分代码是跨平台的,无需修改
|
|
for i in ['pygments']:
|
|
tmp_ret = collect_all(i)
|
|
datas += tmp_ret[0]
|
|
binaries += tmp_ret[1]
|
|
hiddenimports += tmp_ret[2]
|
|
|
|
# --- 分析阶段 ---
|
|
a = Analysis(
|
|
# 【修改 1】: 使用正斜杠 '/' 作为路径分隔符
|
|
['docutranslate/app.py'],
|
|
pathex=[],
|
|
binaries=binaries,
|
|
datas=datas,
|
|
hiddenimports=hiddenimports,
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=["docling","docutranslate.converter.x2md.converter_docling"],
|
|
noarchive=False,
|
|
optimize=0,
|
|
)
|
|
|
|
pyz = PYZ(a.pure)
|
|
|
|
# --- EXE 和 COLLECT 阶段 ---
|
|
# EXE 仅创建 Unix 可执行文件
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
[], # binaries 和 datas 移到下面的 BUNDLE/COLLECT 中
|
|
[],
|
|
name='DocuTranslate',
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=True,
|
|
runtime_tmpdir=None,
|
|
# 【修改 2】: 如果是 GUI 应用,建议设为 False
|
|
console=True,
|
|
disable_windowed_traceback=False,
|
|
argv_emulation=False,
|
|
target_arch=None, # 推荐 'universal2' 以支持 Apple Silicon 和 Intel
|
|
codesign_identity=None,
|
|
entitlements_file=None,
|
|
)
|
|
|
|
# --- BUNDLE 阶段 (macOS 核心) ---
|
|
# 【修改 3】: 使用 BUNDLE 创建 .app 包,而不是单独的 EXE
|
|
# 这将生成一个标准的 macOS 应用程序
|
|
app = BUNDLE(
|
|
exe,
|
|
name='DocuTranslate.app',
|
|
# 【修改 4】: 使用 .icns 格式的图标
|
|
icon='DocuTranslate.icns',
|
|
bundle_identifier='cc.xunbu.docutranslate', # 推荐设置一个唯一的包标识符
|
|
info_plist={
|
|
'NSHighResolutionCapable': 'True',
|
|
'NSPrincipalClass': 'NSApplication',
|
|
'NSAppleScriptEnabled': False,
|
|
'CFBundleDisplayName': 'DocuTranslate',
|
|
'CFBundleName': 'DocuTranslate',
|
|
'CFBundleVersion': '1.0.0',
|
|
'CFBundleShortVersionString': '1.0',
|
|
'NSHumanReadableCopyright': 'Copyright © 2023 Your Name. All rights reserved.'
|
|
}
|
|
)
|
|
|
|
# 将 a.datas 和 a.binaries 添加到 .app 包中
|
|
app.datas += a.datas
|
|
app.binaries += a.binaries |