50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
"""
|
|
GEO Tool — PyInstaller 打包入口
|
|
|
|
打包后自动切换工作目录到解压路径,确保 config.json、geo_data.db、
|
|
.streamlit/、knowledge_base/ 等资源文件的相对路径正常工作。
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
|
|
def main():
|
|
# 判断是否在 PyInstaller 打包环境中运行
|
|
if getattr(sys, "frozen", False):
|
|
bundle_dir = Path(sys._MEIPASS)
|
|
else:
|
|
bundle_dir = Path(__file__).parent
|
|
|
|
# 切换到打包目录,确保所有相对路径能正确解析
|
|
os.chdir(str(bundle_dir))
|
|
|
|
# 确保运行时目录存在(打包时可能为空目录导致不被包含)
|
|
(bundle_dir / "knowledge_base").mkdir(exist_ok=True)
|
|
|
|
# 重写 argv 启动 Streamlit
|
|
# 注意:此应用将被嵌入桌面壳(Tauri)中运行,因此:
|
|
# - headless=true:不自动打开浏览器,由桌面壳接管
|
|
# - port=8501:固定端口
|
|
# - gatherUsageStats=false / developmentMode=false:关闭遥测与在线服务
|
|
# - logger.level=error:静默启动,减少控制台输出
|
|
sys.argv = [
|
|
"streamlit",
|
|
"run",
|
|
"geo_tool.py",
|
|
"--server.port", "8501",
|
|
"--server.address", "127.0.0.1",
|
|
"--server.headless", "true",
|
|
"--browser.gatherUsageStats", "false",
|
|
"--global.developmentMode", "false",
|
|
"--logger.level", "error",
|
|
]
|
|
|
|
from streamlit.web.cli import main as streamlit_main
|
|
streamlit_main()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|