Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在jupyter笔记本中运行parse_args()?获取错误SystemExit:2_Python_Jupyter Notebook_Jupyter_Spyder_Argparse - Fatal编程技术网

Python 如何在jupyter笔记本中运行parse_args()?获取错误SystemExit:2

Python 如何在jupyter笔记本中运行parse_args()?获取错误SystemExit:2,python,jupyter-notebook,jupyter,spyder,argparse,Python,Jupyter Notebook,Jupyter,Spyder,Argparse,我正试图这么做,但我确实无法通过他解析参数的第一段代码。我试过Spyder和Jupyter,在这个街区被困了一个小时: from argparse import ArgumentParser parser = ArgumentParser(description='Create Quarterly Marketing Report') parser.add_argument('data_directory', action='store',

我正试图这么做,但我确实无法通过他解析参数的第一段代码。我试过Spyder和Jupyter,在这个街区被困了一个小时:

from argparse import ArgumentParser

parser = ArgumentParser(description='Create Quarterly Marketing Report')
parser.add_argument('data_directory',
                        action='store',
                        help="Source directory that contains Excel files")
parser.add_argument('output_directory',
                        action='store',
                        help="Output directory to save summary report")
parser.add_argument('cust_file',
                        action='store',
                        help='Customer Account Status File')
parser.add_argument('-d', help='Start date to include')
args = parser.parse_args()
我的错误:

usage: ipykernel_launcher.py [-h] [-d D]
                             data_directory output_directory cust_file
ipykernel_launcher.py: error: the following arguments are required: data_directory, output_directory, cust_file
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2
完全回溯:

---------------------------------------------------------------------------
SystemExit                                Traceback (most recent call last)
<ipython-input-24-28f93e96a3df> in <module>
----> 1 args = parser.parse_args('')

~\Anaconda3\lib\argparse.py in parse_args(self, args, namespace)
   1747     # =====================================
   1748     def parse_args(self, args=None, namespace=None):
-> 1749         args, argv = self.parse_known_args(args, namespace)
   1750         if argv:
   1751             msg = _('unrecognized arguments: %s')

~\Anaconda3\lib\argparse.py in parse_known_args(self, args, namespace)
   1779         # parse the arguments and exit if there are any errors
   1780         try:
-> 1781             namespace, args = self._parse_known_args(args, namespace)
   1782             if hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR):
   1783                 args.extend(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR))

~\Anaconda3\lib\argparse.py in _parse_known_args(self, arg_strings, namespace)
   2014         if required_actions:
   2015             self.error(_('the following arguments are required: %s') %
-> 2016                        ', '.join(required_actions))
   2017 
   2018         # make sure all required groups had one option present

~\Anaconda3\lib\argparse.py in error(self, message)
   2499         self.print_usage(_sys.stderr)
   2500         args = {'prog': self.prog, 'message': message}
-> 2501         self.exit(2, _('%(prog)s: error: %(message)s\n') % args)

~\Anaconda3\lib\argparse.py in exit(self, status, message)
   2486         if message:
   2487             self._print_message(message, _sys.stderr)
-> 2488         _sys.exit(status)
   2489 
   2490     def error(self, message):

SystemExit: 2

在笔记本或交互式会话中,您可以使用测试
argparse
设置

args = parser.parse_args('dir1 dir2 foobar'.split())
print(args)
parse_args()
解析来自shell命令的
sys.argv[1://code>列表。要查看它,请使用:

import sys
print(sys.argv)
您很可能会看到与
jupyter
服务器相关的字符串

当您提供一个列表时,它将被解析,而不是默认值


您甚至可以使用
args=argparse.Namespace(foo='bar',x=2)
args
只需要具有其余代码所需的属性。

在笔记本或交互式会话中,您可以使用测试
argparse
设置

args = parser.parse_args('dir1 dir2 foobar'.split())
print(args)
parse_args()
解析来自shell命令的
sys.argv[1://code>列表。要查看它,请使用:

import sys
print(sys.argv)
您很可能会看到与
jupyter
服务器相关的字符串

当您提供一个列表时,它将被解析,而不是默认值


您甚至可以使用
args=argparse.Namespace(foo='bar',x=2)
args
只需要具有代码其余部分所需的属性。

不要试图在笔记本中运行本教程。它不适用于那种环境,在Spyder中也不起作用。你推荐什么?在VSCode中也出现相同错误。否。在这种情况下,我该怎么做?Spyder:“运行”菜单,“每个文件的配置”,启用并填充“命令行选项”。但是一般来说,如果你想学习一个教程,你应该按照教程所说的去做。它并没有说您需要Jupyter或Spyder,它只是链接了一个笔记本,其中显示了将打包到独立Python文件中的步骤。但是笔记本本身并没有尝试解析命令行参数,因为笔记本中没有命令行参数。所以我应该将代码复制并粘贴到文本文件中,保存为.py并运行它?我必须保存文本文件,然后在每次我想调整某些内容时从命令行运行它?不要试图在笔记本中运行本教程。它不适用于那种环境,在Spyder中也不起作用。你推荐什么?在VSCode中也出现相同错误。否。在这种情况下,我该怎么做?Spyder:“运行”菜单,“每个文件的配置”,启用并填充“命令行选项”。但是一般来说,如果你想学习一个教程,你应该按照教程所说的去做。它并没有说您需要Jupyter或Spyder,它只是链接了一个笔记本,其中显示了将打包到独立Python文件中的步骤。但是笔记本本身并没有尝试解析命令行参数,因为笔记本中没有命令行参数。所以我应该将代码复制并粘贴到文本文件中,保存为.py并运行它?我必须保存文本文件,然后每次我想调整某些内容时都从命令行运行它?