""" 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()