[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