diff --git a/docutranslate/app.py b/docutranslate/app.py index b5b4b8d..e2356f7 100644 --- a/docutranslate/app.py +++ b/docutranslate/app.py @@ -482,8 +482,8 @@ def find_free_port(start_port): port += 1 # 端口被占用,尝试下一个端口 -def run_app(): - initial_port = 8010 +def run_app(port=8010): + initial_port = port try: # 首先检查初始端口是否可用 port = find_free_port(initial_port) diff --git a/docutranslate/cli.py b/docutranslate/cli.py index cacbeb8..d6c8098 100644 --- a/docutranslate/cli.py +++ b/docutranslate/cli.py @@ -5,7 +5,7 @@ import sys # 用于检查命令行参数数量 def main(): parser = argparse.ArgumentParser( description="DocuTranslate: 一个文档翻译工具。", - epilog="示例: docutranslate -i (启动图形界面)" # epilog 会显示在帮助信息的末尾 + epilog="示例: docutranslate -i (启动图形界面)\ndocutranslate -i -p 8081 (启用端口号8081)" # epilog 会显示在帮助信息的末尾 ) parser.add_argument( "-i", "--interactive", # 添加一个长选项,更友好 @@ -13,6 +13,18 @@ def main(): help="打开图形化用户界面 (GUI)。" ) + parser.add_argument( + "-p", "--port", + type=int, # 指定参数类型(例如整数) + default=8010, # 默认值(可选) + help="指定端口号(默认:8010)。" + ) + + parser.add_argument( + "--version", # 添加一个长选项,更友好 + action="store_true", + help="查看版本号。" + ) # 如果你想在未来添加其他非GUI的命令行功能,可以在这里添加更多参数 # parser.add_argument("input_file", help="要翻译的文件路径", nargs="?") # nargs="?" 使其可选 # parser.add_argument("-l", "--language", help="目标语言") @@ -34,7 +46,10 @@ def main(): # 调用核心逻辑 if args.interactive: # 注意这里是 args.interactive,对应 "--interactive" from docutranslate.app import run_app - run_app() + run_app(port=args.port) + elif args.version: + from docutranslate import __version__ + print(__version__) else: print("提示:若要启动 DocuTranslate 图形界面,请使用 -i 或 --interactive 选项。") print("\n用法示例:") @@ -46,5 +61,6 @@ def main(): # parser.print_help() sys.exit(1) # 以错误码退出,表明命令未按预期执行 + if __name__ == "__main__": main() \ No newline at end of file