[mythtv-users] Important: Changes to Metadata lookup in March 2021

Bill Meek keemllib at gmail.com
Thu Feb 25 19:12:55 UTC 2021


On 2/25/21 8:57 AM, Hika van den Hoven wrote:
> Hoi Stephen,
> 
> Thursday, February 25, 2021, 3:12:21 PM, you wrote:
> 
>> On Thu, 25 Feb 2021 09:40:16 +0000, you wrote:
> 
>>> On 25/02/2021 00:37, Hika van den Hoven wrote:
>>>> Hoi Peter,
>>>>
>>>> Wednesday, February 24, 2021, 7:08:16 PM, you wrote:
>>>>
>>>>
>>>>> Test it by running these
>>>>
>>>>> Display help page
>>>>> /usr/share/mythtv/metadata/Television/tmdb3tv.py -h
>>>>
>>>>> Display series data xml
>>>>> /usr/share/mythtv/metadata/Television/tmdb3tv.py -l en -a US -M Monk
>>>>
>>>>> Display episode data xml
>>>>> /usr/share/mythtv/metadata/Television/tmdb3tv.py -l en -a US -N 1695
>>>>> "Mr. Monk and the Psychic"
>>>>
>>>>> Display episode data xml
>>>>> /usr/share/mythtv/metadata/Television/tmdb3tv.py -l en -a US -N Monk
>>>>> "Mr. Monk and the Psychic"
>>>>
>>>>> Run the same tests for tvmaze.py
>>>>
>>>>> Let me know if this works.
>>>>
>>>>> Note: You need to install them on all frontends and backend.
>>>>
>>>>> Peter
>>>>
>>>> With tmdb3tv I encounter a more complex issue that I as jet do not
>>>> fully understand. I was missing: https://pypi.org/project/future/0.6.0/
>>>> that next after installing gave the following error:
>>>>
>>>> Traceback (most recent call last):
>>>>    File "./tmdb3tv.py", line 159, in <module>
>>>>      sys.exit(main("television",'tmdb3tv.py'))
>>>>    File "./tmdb3tv.py", line 79, in main
>>>>      from MythTV.tmdb3.lookup import timeouthandler
>>>>    File "/usr/lib64/python2.7/site-packages/MythTV/tmdb3/__init__.py", line 5, in <module>
>>>>      from .tmdb_api import Configuration, searchMovie, searchMovieWithYear, \
>>>>    File "/usr/lib64/python2.7/site-packages/MythTV/tmdb3/tmdb_api.py", line 69, in <module>
>>>>      from .request import set_key, Request
>>>>    File "/usr/lib64/python2.7/site-packages/MythTV/tmdb3/request.py", line 12, in <module>
>>>>      from .cache import Cache
>>>>    File "/usr/lib64/python2.7/site-packages/MythTV/tmdb3/cache.py", line 13, in <module>
>>>>      from .cache_engine import Engines
>>>>    File "/usr/lib64/python2.7/site-packages/MythTV/tmdb3/cache_engine.py", line 47, in <module>
>>>>      class CacheEngine(with_metaclass(CacheEngineType, object)):
>>>>    File "/usr/lib64/python2.7/site-packages/future-0.6.0-py2.7.egg/future/utils/__init__.py", line 125, in with_metaclass
>>>>      return metaclass('temporary_class', None, {})
>>>>    File "/usr/lib64/python2.7/site-packages/future-0.6.0-py2.7.egg/future/utils/__init__.py", line 123, in __new__
>>>>      return type.__new__(cls, name, (), d)
>>>> TypeError: type() argument 1 must be string, not unicode
>>>
>>> I don't speak python that much, but should the first argument be in single quotes, not double? It is 
>>> a literal, so in theory it shouldn't matter which is used, but I suspect that in this case double 
>>> quotes would be taken as unicode rather than character.
> 
>> The current version of the "future" package is 0.18.2.  As this
>> exception is happening in the future package, my guess is that 0.6.0
>> is way too old and is incompatible with modern Python 3 code
>> somewhere.  Unicode versus string problems are common with converting
>> Python 2 to Python 3 - this is one major area where they are
>> incompatible with each other.
>> _______________________________________________
> 
> Thanks, I googled and got that version. But a searching directly on
> pypi.org gave me the right version:
> https://pypi.org/project/future/
> 
> and now it works OK.
> 
> In the mean time I tried installing the complete recent bindings on
> python3 next to the old one on python2. I get:
> ERROR: <class 'MythTV.exception.MythError'> : No viable database module found
> 
> I guess mythtv/mythtv/bindings/python/setup.py from git does not
> install the complete bindings? Or are other python modules missing?

Make calls setup.py and installs per what's done a configure time. This may help.

I haven't used the following in months, but when testing v31 with Python 2.7 and 3.x
it installed both. Again, not tested recently and not intended for long term
solutions.

#!/bin/sh

# ASSUMES ./configure installed with python3.

PY2_VERSION=$(python2 --version 2>&1 | awk 'BEGIN {FS="[ .]"} {print $2"."$3}')
PY3_VERSION=$(python3 --version 2>&1 | awk 'BEGIN {FS="[ .]"} {print $2"."$3}')

PY2_DIR=/usr/local/lib/python${PY2_VERSION}/dist-packages/MythTV
PY3_DIR=/usr/local/lib/python${PY3_VERSION}/dist-packages/MythTV

cd ~/source/mythtv/mythtv/bindings/python

make clean PREFIX=/usr/local PYTHON=python2
make clean PREFIX=/usr/local PYTHON=python3
make PREFIX=/usr/local PYTHON=python2
sudo make install PREFIX=/usr/local PYTHON=python2

ls -al $PY2_DIR $PY3_DIR

-- 
Bill


More information about the mythtv-users mailing list