python - 使用 argparse 错误地传递参数

标签 python azure argparse azure-sdk azure-sdk-python

我不明白为什么参数传递不正确:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--start_date', type=str, default='2016-07-01T00:00:00Z', dest='start_date')
parser.add_argument('--end_date', type=str, default='2016-09-01T00:00:00Z', dest='end_date')
args, unknown = parser.parse_known_args()

print(str(args.start_date))
# 01/01/2019 00:00:00 

print(str(args.end_date))
# 08/20/2019 00:00:00

这是我将参数从 Azure ML 管道脚本传递给脚本的方式:

    start_date = '2019-01-01T00:00:00Z'
    end_date = '2019-08-20T00:00:00Z'

    preprocess_step = PythonScriptStep(
        name="Test",
        script_name="myscript.py",
        compute_target=aml_compute,
        source_directory=".",
        arguments=[
            "--start_date", start_date,
            "--end_date", end_date
        ],
        allow_reuse=False,
    )

但是,如果我从命令行运行 myscript.py,则参数会正确传递:

python myscript.py --start_date 2019-01-01T00:00:00Z --end_date 2019-08-20T00:00:00Z

发生了什么以及如何解决它?

最佳答案

仅从您的帖子描述中我不知道您的真实环境是什么,但只是根据类的官方文档PythonScriptStepRunConfiguration ,如下图所示,我认为缺少为 PythonScriptStep 对象的参数 runco​​nfig 分配的 RunConfiguration 对象。

图 1. 红色标记的 PythonScriptStep 类的 argumentsrunco​​nfig 说明

enter image description here

图2. 设置红色标记的PythonScriptStep时使用RunConfiguration的说明

enter image description here

作为引用,您可以引用下面这些官方示例列表。

  1. MLOps/examples/customer_churn/Customer Churn.ipynb
  2. MLOps/examples/AzureML-Primers/06 - Automating ML Workflows with Pipelines.ipynb
  3. MLOps/examples/imagenet-transfer-learning/mlpipeline.py
  4. MLOpsPython/ml_service/pipelines/diabetes_regression_build_train_pipeline_with_r.py
  5. MLOpsPython/ml_service/pipelines/diabetes_regression_build_train_pipeline.py

他们首先为PythonScriptStep分配一个runco​​nfig值。希望对您有所帮助。

关于python - 使用 argparse 错误地传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59923010/

相关文章:

python - 如何对角分割图像?

python - 如何让我的 discord.py 重写机器人向消息作者发送私有(private)消息

Azure 服务总线共享访问签名

python - argparse - 为什么代码在没有被调用的情况下被执行?

python - 自定义 argparse 帮助消息

python - Numpy 数组 : Efficient use of arrays containing indices

Python Pytz 美国/太平洋时区问题

azure - 是否可以在 headers/cookies/post body 中传递 Azure SAS token ?

azure - 移至另一个订阅 : Cannot move resources because some site(s) are hosted by other resource group(s) but located in resource group 'XXX'

python - argparse 位置参数的位置