使用pip-tools安装mower-ng的依赖

This commit is contained in:
li-xiaochen 2024-12-19 08:07:32 +08:00
parent ffc2ff6808
commit 92ef815d0d
4 changed files with 18 additions and 20 deletions

View file

@ -7,7 +7,6 @@ from pathlib import Path
from shutil import rmtree from shutil import rmtree
from subprocess import Popen from subprocess import Popen
import chardet
import requests import requests
from launcher import config from launcher import config
@ -29,27 +28,27 @@ command_list = {
"fetch": lambda: f"..\\git\\bin\\git fetch origin {config.conf.branch} --progress", "fetch": lambda: f"..\\git\\bin\\git fetch origin {config.conf.branch} --progress",
"switch": lambda: f"..\\git\\bin\\git -c lfs.concurrenttransfers=100 switch -f {config.conf.branch} --progress", "switch": lambda: f"..\\git\\bin\\git -c lfs.concurrenttransfers=100 switch -f {config.conf.branch} --progress",
"reset": lambda: f"..\\git\\bin\\git -c lfs.concurrenttransfers=200 reset --hard origin/{config.conf.branch}", "reset": lambda: f"..\\git\\bin\\git -c lfs.concurrenttransfers=200 reset --hard origin/{config.conf.branch}",
"pip_install": lambda: f"..\\python\\Scripts\\pip install --no-cache-dir -i {mirror_list[config.conf.mirror]} -r requirements.txt --no-warn-script-location", "pip_tools_install": lambda: f"..\\python\\Scripts\\pip install --no-cache-dir -i {mirror_list[config.conf.mirror]} pip-tools --no-warn-script-location",
"pip_sync": lambda: f"..\\python\\Scripts\\pip-sync -i {mirror_list[config.conf.mirror]} requirements.txt",
"webview": "start ..\\python\\pythonw webview_ui.py", "webview": "start ..\\python\\pythonw webview_ui.py",
"manager": "start ..\\python\\pythonw manager.py", "manager": "start ..\\python\\pythonw manager.py",
} }
def detect_encoding(stream):
# 读取一部分数据来检测编码
raw_data = stream.read(4096)
result = chardet.detect(raw_data)
stream.seek(0) # 将流指针重置到开头
return result['encoding']
def read_stream(stream, log_func): def read_stream(stream, log_func):
detected_encoding = detect_encoding(stream) def process_lines(text_io):
text_io = io.TextIOWrapper(stream, encoding=detected_encoding, errors='replace')
try:
for line in iter(text_io.readline, ''): for line in iter(text_io.readline, ''):
text = line.rstrip('\n') text = line.rstrip('\n')
custom_event(text.strip() + "\n") custom_event(f"{text.strip()}\n")
detected_encoding = 'utf-8'
text_io = io.TextIOWrapper(stream, encoding=detected_encoding, errors='replace')
try:
process_lines(text_io)
except UnicodeDecodeError:
stream.seek(0) # 重新将流指针重置到开头
text_io = io.TextIOWrapper(stream, encoding='gbk', errors='replace')
process_lines(text_io)
finally: finally:
text_io.close() text_io.close()
@ -136,7 +135,7 @@ class Api:
universal_newlines=False universal_newlines=False
) as p: ) as p:
stdout_thread = threading.Thread(target=read_stream, args=(p.stdout, logger.info)) stdout_thread = threading.Thread(target=read_stream, args=(p.stdout, logger.info))
stderr_thread = threading.Thread(target=read_stream, args=(p.stderr, logger.info)) stderr_thread = threading.Thread(target=read_stream, args=(p.stderr, logger.error))
stdout_thread.start() stdout_thread.start()
stderr_thread.start() stderr_thread.start()
@ -145,7 +144,9 @@ class Api:
stderr_thread.join() stderr_thread.join()
if p.returncode == 0: if p.returncode == 0:
return "success" return "success"
else:
logger.error(f"{command} 运行失败")
return "failed"
except Exception as e: except Exception as e:
logger.exception(e) logger.exception(e)
custom_event(str(e)) custom_event(str(e))
return "failed"

View file

@ -1,5 +1,4 @@
pywebview==5.1 pywebview==5.1
requests==2.32.3 requests==2.32.3
py7zr==0.22.0 py7zr==0.22.0
chardet==5.2.0
pydantic==2.10.3 pydantic==2.10.3

View file

@ -16,8 +16,6 @@ certifi==2024.12.14
# via requests # via requests
cffi==1.17.1 cffi==1.17.1
# via clr-loader # via clr-loader
chardet==5.2.0
# via -r requirements.in
charset-normalizer==3.4.0 charset-normalizer==3.4.0
# via requests # via requests
clr-loader==0.2.7.post0 clr-loader==0.2.7.post0

View file

@ -13,7 +13,7 @@ const steps = computed(() => [
}, },
{ {
title: '安装依赖', title: '安装依赖',
command: ['pip_install'], command: ['pip_tools_install', 'pip_sync'],
cwd: 'mower-ng' cwd: 'mower-ng'
} }
]) ])