【发布时间】:2021-09-23 18:00:08
【问题描述】:
我有一个遵循正常代码结构的.py 文件
def main( args ):
.......
.......
if __name__ == "__main__":
parser = argparse.ArgumentParser(description = “ forecasting example”)
parser.add_argument("--train-window", default=2160, type=int)
parser.add_argument("--test-window", default=336, type=int)
parser.add_argument("--stride", default=168, type=int)
parser.add_argument("-n", "--num-steps", default=501, type=int)
parser.add_argument("-lr", "--learning-rate", default=0.05, type=float)
parser.add_argument("--dct", action="store_true")
parser.add_argument("--num-samples", default=100, type=int)
parser.add_argument("--log-every", default=50, type=int)
parser.add_argument("--seed", default=1234567890, type=int)
args = parser.parse_args()
main(args)
我试图在 Jupyter notebook 中运行这个程序,但它会出现诸如
之类的错误usage: ipykernel_launcher.py [-h] [--train-window TRAIN_WINDOW]
[--test-window TEST_WINDOW] [--stride STRIDE]
[-n NUM_STEPS] [-lr LEARNING_RATE] [--dct]
[--num-samples NUM_SAMPLES]
[--log-every LOG_EVERY] [--seed SEED]
ipykernel_launcher.py: error: unrecognized arguments: -f C:\Users\AppData\Roaming\jupyter\runtime\kernel-4c744f03-3278-4aaf-af5e-50c96e9e41cd.json
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
我的问题是,如果我想在 Jupyter Notebook 中运行一个使用 argparse 类型机制设置输入参数的 python 程序,我需要做哪些正确的方法或修改?
【问题讨论】:
-
是什么命令导致你显示的错误?
-
在笔记本中使用命令行参数充其量是很尴尬的。笔记本看到的
sys.argv来自内核,其中包含有关接口 javascript 文件的信息。启动服务器时提供的参数是针对服务器本身的,而不是针对它可能运行的任何笔记本。 -
无论如何,代码似乎缩进不正确;
if __name__ == "__main__":应该在def main():之外 -
-f C:\Users\AppData\Roaming\jupyter\runtime\kernel-4c744f03-3278-4aaf-af5e-50c96e9e41cd.json来自服务器告诉内核使用哪个json文件。您的parser无法使用。
标签: python python-3.x jupyter-notebook argparse