修复:第一次运行时,无法找到 questions.csv

This commit is contained in:
2025-05-18 12:02:35 +08:00
parent 6961b70a7d
commit 83b3790e8b
3 changed files with 13 additions and 10 deletions

View File

@@ -6,6 +6,7 @@ from pathlib import Path
from PySide6.QtWidgets import QApplication from PySide6.QtWidgets import QApplication
from ui.main import MainWindow from ui.main import MainWindow
from utils.function import resource_path
appdata_dir = Path(os.environ["APPDATA"]) appdata_dir = Path(os.environ["APPDATA"])
dtg_dir = appdata_dir / "dtg" dtg_dir = appdata_dir / "dtg"
@@ -13,7 +14,7 @@ target_csv = dtg_dir / "questions.csv"
if not target_csv.exists(): if not target_csv.exists():
dtg_dir.mkdir(parents=True, exist_ok=True) dtg_dir.mkdir(parents=True, exist_ok=True)
source_csv = Path("template/questions.csv") source_csv = Path(resource_path("template/questions.csv"))
if not source_csv.exists(): if not source_csv.exists():
raise FileNotFoundError(f"源文件不存在:{source_csv.resolve()}") raise FileNotFoundError(f"源文件不存在:{source_csv.resolve()}")
shutil.copy(source_csv, target_csv) shutil.copy(source_csv, target_csv)

View File

@@ -1,7 +1,6 @@
import os import os
import platform import platform
import subprocess import subprocess
import sys
from pathlib import Path from pathlib import Path
from PySide6.QtCore import QObject, QThread, Signal from PySide6.QtCore import QObject, QThread, Signal
@@ -10,14 +9,7 @@ from PySide6.QtWidgets import QMainWindow, QFileDialog
from module.doc import DocPaper from module.doc import DocPaper
from module.schema import Course, Student, Question from module.schema import Course, Student, Question
from ui.pyui.main import Ui_MainWindow from ui.pyui.main import Ui_MainWindow
from utils.function import resource_path
def resource_path(relative_path: str) -> str:
if hasattr(sys, '_MEIPASS'):
base_path = sys._MEIPASS
else:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
class Worker(QObject): class Worker(QObject):

10
utils/function.py Normal file
View File

@@ -0,0 +1,10 @@
import os
import sys
def resource_path(relative_path: str) -> str:
if hasattr(sys, '_MEIPASS'):
base_path = sys._MEIPASS
else:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)