Spaces:
Configuration error
Configuration error
import os | |
import re | |
import socket | |
import subprocess | |
import sys | |
import psutil | |
def check_ffmpeg_path(): | |
cwd = os.getcwd() | |
ffmpeg_path = os.path.join(cwd, "ffmpeg", "bin", "ffmpeg.exe") | |
ffprobe_path = os.path.join(cwd, "ffmpeg", "bin", "ffprobe.exe") | |
return os.path.isfile(ffmpeg_path) and os.path.isfile(ffprobe_path) | |
def get_default_browser(): | |
browser = "" | |
try: | |
cmd = r'reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice /v ProgId' | |
output = subprocess.check_output(cmd, shell=True).decode() | |
browser = output.split()[-1].split('\\')[-1] | |
except Exception as e: | |
print(f"Error: {e}") | |
browser = "Unknown" | |
return browser | |
def get_hostname(): | |
try: | |
hostname = socket.gethostname() | |
return hostname | |
except socket.error as e: | |
print("Error: ", e) | |
def get_pagefile_size(): | |
try: | |
pagefile = psutil.swap_memory().total | |
except UnboundLocalError: | |
pagefile = 0 | |
except RuntimeError: | |
pagefile = None | |
return pagefile | |
def main(): | |
allowed_pattern = re.compile(r'^[a-zA-Z0-9_@#$%^&()_+\-=\s\.]*$') | |
hostname = get_hostname() | |
pagefile = get_pagefile_size() | |
default_browser = get_default_browser() | |
if check_ffmpeg_path(): | |
print("FFmpeg already installed, skipping...") | |
else: | |
try: | |
sys.exit(0) | |
finally: | |
print("未找到FFmpeg,整合包可能不完整,请重新下载") | |
if pagefile is None: | |
print("WARNING | 系统未开启性能计数器,无法获取当前虚拟内存状态,确保虚拟内存大于30G后可忽略此警告") | |
elif pagefile < 31457280000: # 30 GiB | |
print("WARNING | 虚拟内存不足30GB,可能会导致使用问题,请将虚拟内存设置为至少30G") | |
if "chrome" not in default_browser.lower() and "edge" not in default_browser.lower() and "firefox" not in default_browser.lower(): | |
print("WARNING | 默认浏览器不符合要求,可能会影响使用,请更换为Chrome或Edge浏览器") | |
if not allowed_pattern.match(hostname): | |
print("WARNING | 计算机主机名中含有非西文字符,启动Tensorboard时可能出错,请在计算机设置中修改") | |
os.system("workenv\python.exe app.py") | |
if __name__ == "__main__": | |
main() |