QPT-Family / QPT

[内测中]QPT - 致力于让开源项目更好通往互联网世界的Python to EXE工具(Python打包)。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Good issue]打包后的exe运行时,无法传入指定的参数

geoexploring opened this issue · comments

QPT版本

1.0b3.dev7

操作系统版本

Windows 10

CPU型号

Intel(R) Core(TM) i7-10700 CPU

核心信息填写

在运行深度学习程序时,很多train.py文件会通过argparse让用户输入某些指定参数,比如batch_size等。

我做了一个简单测试,写一个demo,代码如下:

import argparse

def parse_args():
    parser = argparse.ArgumentParser(description='Model Train')
    parser.add_argument(
        "--trainParameters", dest="trainParameters", help="train parameters", default=None, type=int, required=True)
    return parser.parse_args()

def main(dictParameters):
    print("result = ", dictParameters+1)

if __name__ == '__main__':
    args = parse_args()
    dictParameters = args.trainParameters
    main(dictParameters)

在终端运行python demo.py --trainParameters 1 能够运行成功。

用如下代码进行QPT打包:

from qpt.executor import CreateExecutableModule as CEM

module = CEM(work_dir="./args_test/",           
             launcher_py_path="./demo.py", 
             save_path="./out_test")                          
 
module.make()

很快打包成功,当我在cmd运行Debug.exe --trainParameters 1时,会报如下的错:

usage: demo.py [-h] --trainParameters TRAINPARAMETERS
demo.py: error: the following arguments are required: --trainParameters`

也就是参数并没有传递成功,请问这是什么原因呢?
谢谢!

Hi,开发者朋友,鉴于您是首次在QPT下新增Issue,请务必参考给定的Issue模板进行Issue的新增。
虽然形如版本号、打包日志等信息可能对你并不重要,但如未提供则可能会严重拖慢Issue的解决效率,因为他们对于QPT的维护者而言非常重要!
如您未按Issue模板进行内容补充,可关闭此Issue或Edit该Issue,社区维护者会对低效Issue直接Close,请悉知!

最新版本是起多进程做启动的,最开始没考虑参数这个情况,近期我会修一下哈

@GT-ZhangAcer ,好的,感谢!

已在1.0b3.dev9中尝试修复,预计15分钟后清华源即可同步该版本。
发布状态:https://github.com/QPT-Family/QPT/actions/runs/2375343341