1
|
<body bgcolor="#f0f0f8">
|
2
|
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
|
3
|
<tr bgcolor="#6622aa">
|
4
|
<td valign=bottom> <br>
|
5
|
<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong>NoOptionError</strong></big></big></font></td
|
6
|
><td align=right valign=bottom
|
7
|
><font color="#ffffff" face="helvetica, arial">Python 3.7.3: /usr/bin/python3<br>Thu Nov 26 18:43:11 2020</font></td></tr></table>
|
8
|
|
9
|
<p>A problem occurred in a Python script. Here is the sequence of
|
10
|
function calls leading up to the error, in the order they occurred.</p>
|
11
|
<table width="100%" cellspacing=0 cellpadding=0 border=0>
|
12
|
<tr><td bgcolor="#d8bbff"><big> </big><a href="file:///usr/lib/cgi-bin/tvh_epg.py">/usr/lib/cgi-bin/tvh_epg.py</a> in <strong><module></strong>()</td></tr>
|
13
|
<tr><td><font color="#909090"><tt> <small> 1474</small> cgitb.enable(display=0, logdir=DOCROOT + '/python_errors', format='html')<br>
|
14
|
</tt></font></td></tr>
|
15
|
<tr><td><font color="#909090"><tt> <small> 1475</small> <br>
|
16
|
</tt></font></td></tr>
|
17
|
<tr><td bgcolor="#ffccee"><tt>=><small> 1476</small> web_interface()<br>
|
18
|
</tt></td></tr>
|
19
|
<tr><td><font color="#909090"><tt> <small> 1477</small> <br>
|
20
|
</tt></font></td></tr>
|
21
|
<tr><td><font color="#909090"><tt> <small> 1478</small> else:<br>
|
22
|
</tt></font></td></tr>
|
23
|
<tr><td><small><font color="#909090"><strong>web_interface</strong> = <function web_interface></font></small></td></tr></table>
|
24
|
<table width="100%" cellspacing=0 cellpadding=0 border=0>
|
25
|
<tr><td bgcolor="#d8bbff"><big> </big><a href="file:///usr/lib/cgi-bin/tvh_epg.py">/usr/lib/cgi-bin/tvh_epg.py</a> in <strong>web_interface</strong>()</td></tr>
|
26
|
<tr><td><font color="#909090"><tt> <small> 1406</small> #print("<p>%s = %s</p>" % (headername, headervalue, ) )<br>
|
27
|
</tt></font></td></tr>
|
28
|
<tr><td><font color="#909090"><tt> <small> 1407</small> <br>
|
29
|
</tt></font></td></tr>
|
30
|
<tr><td bgcolor="#ffccee"><tt>=><small> 1408</small> page_epg()<br>
|
31
|
</tt></td></tr>
|
32
|
<tr><td><font color="#909090"><tt> <small> 1409</small> html_page_footer()<br>
|
33
|
</tt></font></td></tr>
|
34
|
<tr><td><font color="#909090"><tt> <small> 1410</small> elif p_page == 'error':<br>
|
35
|
</tt></font></td></tr>
|
36
|
<tr><td><small><font color="#909090"><em>global</em> <strong>page_epg</strong> = <function page_epg></font></small></td></tr></table>
|
37
|
<table width="100%" cellspacing=0 cellpadding=0 border=0>
|
38
|
<tr><td bgcolor="#d8bbff"><big> </big><a href="file:///usr/lib/cgi-bin/tvh_epg.py">/usr/lib/cgi-bin/tvh_epg.py</a> in <strong>page_epg</strong>()</td></tr>
|
39
|
<tr><td><font color="#909090"><tt> <small> 650</small> epoch_time = time.time()<br>
|
40
|
</tt></font></td></tr>
|
41
|
<tr><td><font color="#909090"><tt> <small> 651</small> <br>
|
42
|
</tt></font></td></tr>
|
43
|
<tr><td bgcolor="#ffccee"><tt>=><small> 652</small> channel_dict = get_channel_dict()<br>
|
44
|
</tt></td></tr>
|
45
|
<tr><td><font color="#909090"><tt> <small> 653</small> channel_tag = get_channeltag_grid()<br>
|
46
|
</tt></font></td></tr>
|
47
|
<tr><td><font color="#909090"><tt> <small> 654</small> cdl = len(channel_dict)<br>
|
48
|
</tt></font></td></tr>
|
49
|
<tr><td><small><font color="#909090">channel_dict <em>undefined</em>, <em>global</em> <strong>get_channel_dict</strong> = <function get_channel_dict></font></small></td></tr></table>
|
50
|
<table width="100%" cellspacing=0 cellpadding=0 border=0>
|
51
|
<tr><td bgcolor="#d8bbff"><big> </big><a href="file:///usr/lib/cgi-bin/tvh_epg.py">/usr/lib/cgi-bin/tvh_epg.py</a> in <strong>get_channel_dict</strong>()</td></tr>
|
52
|
<tr><td><font color="#909090"><tt> <small> 334</small> ts_user = MY_SETTINGS.get(SETTINGS_SECTION, TS_USER)<br>
|
53
|
</tt></font></td></tr>
|
54
|
<tr><td><font color="#909090"><tt> <small> 335</small> ts_pass = MY_SETTINGS.get(SETTINGS_SECTION, TS_PASS)<br>
|
55
|
</tt></font></td></tr>
|
56
|
<tr><td bgcolor="#ffccee"><tt>=><small> 336</small> ts_max_ch = MY_SETTINGS.get(SETTINGS_SECTION, MAX_CHANS)<br>
|
57
|
</tt></td></tr>
|
58
|
<tr><td><font color="#909090"><tt> <small> 337</small> ts_query = '%s/%s?limit=%s' % (<br>
|
59
|
</tt></font></td></tr>
|
60
|
<tr><td><font color="#909090"><tt> <small> 338</small> ts_url,<br>
|
61
|
</tt></font></td></tr>
|
62
|
<tr><td><small><font color="#909090">ts_max_ch <em>undefined</em>, <em>global</em> <strong>MY_SETTINGS</strong> = <configparser.ConfigParser object>, MY_SETTINGS.<strong>get</strong> = <bound method RawConfigParser.get of <configparser.ConfigParser object>>, <em>global</em> <strong>SETTINGS_SECTION</strong> = 'user', <em>global</em> <strong>MAX_CHANS</strong> = 'max_chans'</font></small></td></tr></table>
|
63
|
<table width="100%" cellspacing=0 cellpadding=0 border=0>
|
64
|
<tr><td bgcolor="#d8bbff"><big> </big><a href="file:///usr/lib/python3.7/configparser.py">/usr/lib/python3.7/configparser.py</a> in <strong>get</strong>(self=<configparser.ConfigParser object>, section='user', option='max_chans', raw=False, vars=None, fallback=<object object>)</td></tr>
|
65
|
<tr><td><font color="#909090"><tt> <small> 789</small> except KeyError:<br>
|
66
|
</tt></font></td></tr>
|
67
|
<tr><td><font color="#909090"><tt> <small> 790</small> if fallback is _UNSET:<br>
|
68
|
</tt></font></td></tr>
|
69
|
<tr><td bgcolor="#ffccee"><tt>=><small> 791</small> raise NoOptionError(option, section)<br>
|
70
|
</tt></td></tr>
|
71
|
<tr><td><font color="#909090"><tt> <small> 792</small> else:<br>
|
72
|
</tt></font></td></tr>
|
73
|
<tr><td><font color="#909090"><tt> <small> 793</small> return fallback<br>
|
74
|
</tt></font></td></tr>
|
75
|
<tr><td><small><font color="#909090"><em>global</em> <strong>NoOptionError</strong> = <class 'configparser.NoOptionError'>, <strong>option</strong> = 'max_chans', <strong>section</strong> = 'user'</font></small></td></tr></table><p><strong>NoOptionError</strong>: No option 'max_chans' in section: 'user'
|
76
|
<br><tt><small> </small> </tt>args =
|
77
|
('max_chans', 'user')
|
78
|
<br><tt><small> </small> </tt>message =
|
79
|
"No option 'max_chans' in section: 'user'"
|
80
|
<br><tt><small> </small> </tt>option =
|
81
|
'max_chans'
|
82
|
<br><tt><small> </small> </tt>section =
|
83
|
'user'
|
84
|
<br><tt><small> </small> </tt>with_traceback =
|
85
|
<built-in method with_traceback of NoOptionError object>
|
86
|
|
87
|
|
88
|
<!-- The above is a description of an error in a Python program, formatted
|
89
|
for a Web browser because the 'cgitb' module was enabled. In case you
|
90
|
are not reading this in a Web browser, here is the original traceback:
|
91
|
|
92
|
Traceback (most recent call last):
|
93
|
File "/usr/lib/python3.7/configparser.py", line 788, in get
|
94
|
value = d[option]
|
95
|
File "/usr/lib/python3.7/collections/__init__.py", line 914, in __getitem__
|
96
|
return self.__missing__(key) # support subclasses that define __missing__
|
97
|
File "/usr/lib/python3.7/collections/__init__.py", line 906, in __missing__
|
98
|
raise KeyError(key)
|
99
|
KeyError: 'max_chans'
|
100
|
|
101
|
During handling of the above exception, another exception occurred:
|
102
|
|
103
|
Traceback (most recent call last):
|
104
|
File "/usr/lib/cgi-bin/tvh_epg.py", line 1476, in <module>
|
105
|
web_interface()
|
106
|
File "/usr/lib/cgi-bin/tvh_epg.py", line 1408, in web_interface
|
107
|
page_epg()
|
108
|
File "/usr/lib/cgi-bin/tvh_epg.py", line 652, in page_epg
|
109
|
channel_dict = get_channel_dict()
|
110
|
File "/usr/lib/cgi-bin/tvh_epg.py", line 336, in get_channel_dict
|
111
|
ts_max_ch = MY_SETTINGS.get(SETTINGS_SECTION, MAX_CHANS)
|
112
|
File "/usr/lib/python3.7/configparser.py", line 791, in get
|
113
|
raise NoOptionError(option, section)
|
114
|
configparser.NoOptionError: No option 'max_chans' in section: 'user'
|
115
|
|
116
|
-->
|