# 编辑:我没有选择使用--pylab参数启动Ipython。我安装了python(x,y)所以也许这就是问题?
Edit2:我在Windows上。我从python(x,y)控制台启动IDE。当我启动Visual Studio(我正在使用PTVS)时也会出现问题。当我直接启动IDLE并在那里运行示例时,不会出现问题。
尝试从Python文档运行以下代码:https://docs.python.org/2/library/optparse.html
from optparse import OptionParser
[...]
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
我收到以下错误:
In [55]: (options, args) = parser.parse_args()
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
Usage: -c [options]
-c: error: no such option: --pylab
To exit: use 'exit', 'quit', or Ctrl-D.
我是python的新手,并不确定这里发生了什么。好奇为什么错误引用pylab?看起来很奇怪。想知道是否有其他人遇到过类似的问题。如果它有帮助,这是追溯:
In [56]: %tb
---------------------------------------------------------------------------
SystemExit Traceback (most recent call last)
<ipython-input-55-9900fd0b7216> in <module>()
----> 1 (options, args) = parser.parse_args()
C:\Python27\lib\optparse.pyc in parse_args(self, args, values)
1399 stop = self._process_args(largs, rargs, values)
1400 except (BadOptionError, OptionValueError), err:
-> 1401 self.error(str(err))
1402
1403 args = largs + rargs
C:\Python27\lib\optparse.pyc in error(self, msg)
1581 """
1582 self.print_usage(sys.stderr)
-> 1583 self.exit(2, "%s: error: %s\n" % (self.get_prog_name(), msg))
1584
1585 def get_usage(self):
C:\Python27\lib\optparse.pyc in exit(self, status, msg)
1571 if msg:
1572 sys.stderr.write(msg)
-> 1573 sys.exit(status)
1574
1575 def error(self, msg):
SystemExit: 2
答案 0 :(得分:1)
默认情况下,OptParse将从sys.argv读取。你已经用你的optparse设置中不存在的arg --pylab启动了ipython,因此出错了。
您可以将空字符串传递给parse_args('')
以测试默认值。