kmac / mlbv-archived

Command-line interface MLB game information. Game schedule, scores, and standings
GNU General Public License v3.0
57 stars 25 forks source link

Python 3.9 for Windows raising DuplicateOptionError at launch #48

Open jmenglish27 opened 3 years ago

jmenglish27 commented 3 years ago

Has anyone else run into this? This is on a new install.

Traceback (most recent call last): File "c:\users\john english\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\john english\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\John English\AppData\Local\Programs\Python\Python39\Scripts\mlbv.exe__main.py", line 7, in File "c:\users\john english\appdata\local\programs\python\python39\lib\site-packages\mlbv\mlbam\mlbv.py", line 161, in main config.CONFIG = config.Config(mlbconfig.DEFAULTS, args) File "c:\users\john english\appdata\local\programs\python\python39\lib\site-packages\mlbv\mlbam\common\config.py", line 45, in init self.parser = self.init_configparser(script_name) File "c:\users\john english\appdata\local\programs\python\python39\lib\site-packages\mlbv\mlbam\common\config.py", line 87, in __init_configparser parser.read_string(config_string) File "c:\users\john english\appdata\local\programs\python\python39\lib\configparser.py", line 723, in read_string self.read_file(sfile, source) File "c:\users\john english\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file self._read(f, source) File "c:\users\john english\appdata\local\programs\python\python39\lib\configparser.py", line 1093, in _read raise DuplicateOptionError(sectname, optname, configparser.DuplicateOptionError: While reading from '' [line 365]: option '<ul class' in section 'mlbv' already exists

kmac commented 3 years ago

Hmm. Odd. It might help to re-run this with 'mlbv --debug --verbose' options to see if there is more info. There should be an mlbv.log file in your temp directory (I'm not sure where that is on Windows anymore - it's been years). If you wouldn't mind taking a look at that file to see if there is more info.

Also, first I would also make sure you aren't running --init twice? Check if there is already a config file in your config directory.

jmenglish27 commented 3 years ago

Thanks - running again with the debug option gets me the following:

Traceback (most recent call last): File "c:\users\john english\appdata\local\programs\python\python39\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\john english\appdata\local\programs\python\python39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\John English\AppData\Local\Programs\Python\Python39\Scripts\mlbv.exe__main.py", line 7, in File "c:\users\john english\appdata\local\programs\python\python39\lib\site-packages\mlbv\mlbam\mlbv.py", line 161, in main config.CONFIG = config.Config(mlbconfig.DEFAULTS, args) File "c:\users\john english\appdata\local\programs\python\python39\lib\site-packages\mlbv\mlbam\common\config.py", line 45, in init self.parser = self.init_configparser(script_name) File "c:\users\john english\appdata\local\programs\python\python39\lib\site-packages\mlbv\mlbam\common\config.py", line 87, in __init_configparser parser.read_string(config_string) File "c:\users\john english\appdata\local\programs\python\python39\lib\configparser.py", line 723, in read_string self.read_file(sfile, source) File "c:\users\john english\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file self._read(f, source) File "c:\users\john english\appdata\local\programs\python\python39\lib\configparser.py", line 1093, in _read raise DuplicateOptionError(sectname, optname, configparser.DuplicateOptionError: While reading from '' [line 365]: option '<ul class' in section 'mlbv' already exists

jmenglish27 commented 3 years ago

Here's the log file you referenced too. I'm new-ish to Python, picking it back up after tinkering years ago...so I'm sure this is just something obvious I'm missing. Appreciate your help.

mlbv.log

kmac commented 3 years ago

I'm not sure what's going on here TBH. I tried today generating a fresh config via 'mlbv --init' and it worked fine on my linux machine.

That log file you included doesn't have any errors in it or anything too detailed in it.

It does show that you don't have a username or favourites set. And the config directory is set to '.' which looks a little strange to me. It should have used something with a '.config' in the path.

It's the first line of that file I'm looking at:

2021-03-25 07:44:49,824 DEBUG MainThread mlbv.mlbam.mlbv Config: dir=., DEBUG=False, VERBOSE=False, DEFAULT_STREAM_START_OFFSET_SECS=0, username=, favs=, fav_colour=blue, scores=true, use_short_feeds=true, info_display_articles=true, info_display_max_columns=100, filter=, cdn=akamai, resolution=720p_alt, video_player=mpv, api_url=https://statsapi.mlb.com, playback_scenario=HTTP_CLOUD_WIRED_60, streamlink_highlights=true, streamlink_passthrough_highlights=true, streamlink_passthrough=false, streamlink_hls_audio_select=*, streamlink_extra_args=, stream_start_offset_secs=0, audio_player=mpv, debug=false, verbose=false, game_critical_colour=yellow, verify_ssl=true, save_json_file_by_timestamp=false, unicode=true, timeformat=24H

Unfortunately I don't run on Windows, and this looks like some sort of python-on-windows issue. Maybe someone who is running on windows can help here? In config.py the method __find_config_dir is used to figure out the config dir.

You need to figure our where the 'config' file is located in Windows. I would check the directory you're running mlbv out of. Look for a .config directory. If it's not there then look somewhere in the Windows $HOME dir equivalent.

Are you seeing a message 'No config directory found, using current directory.' log in the output of mlbv? That would also be a clue.

When you find the 'config' file, you can always edit it by hand and fill in the missing data if necessary.