Installation problems with release 1.1.8 - due to functools-lru-cache
After installation by the command pip install SignalIntegrity==1.1.8 and subsequent call of the Application I got the following error message:
pi@raspberrypi:~/.local/bin $ ./SignalIntegrity
Traceback (most recent call last):
File "./SignalIntegrity", line 6, in <module>
from SignalIntegrity.App.SignalIntegrityApp import main
File "/home/pi/.local/lib/python2.7/site-packages/SignalIntegrity/__init__.py", line 21, in <module>
from .App import *
File "/home/pi/.local/lib/python2.7/site-packages/SignalIntegrity/App/__init__.py", line 20, in <module>
from .SignalIntegrityApp import SignalIntegrityApp
File "/home/pi/.local/lib/python2.7/site-packages/SignalIntegrity/App/SignalIntegrityApp.py", line 34, in <module>
import matplotlib
File "/home/pi/.local/lib/python2.7/site-packages/matplotlib/__init__.py", line 133, in <module>
from matplotlib.rcsetup import defaultParams, validate_backend, cycler
File "/home/pi/.local/lib/python2.7/site-packages/matplotlib/rcsetup.py", line 31, in <module>
from matplotlib.fontconfig_pattern import parse_fontconfig_pattern
File "/home/pi/.local/lib/python2.7/site-packages/matplotlib/fontconfig_pattern.py", line 28, in <module>
from backports.functools_lru_cache import lru_cache
ImportError: No module named functools_lru_cache
I could resolve it by sudo apt install python-backports.functools-lru-cache.
Then the tool started.
My machine has installed:
matplotlib 2.2.5
which imports module functools_lru_cache.
It appears that it does not find the module unless it is installed by sudo apt install python-backports.functools-lru-cache.
Hi Edgar:
I looked into this, and I could add lru-cache to the list of required packages for SignalIntegrity. But this seems wrong in the sense that matplotlib should require this package in its installer if it uses it (I don't know what matplotlib uses and requires!).
What do you think?
Hi Pete,
Sorry for late reply. I agree with you I think this depends all upon how matplotlib is being installed. If it is installed using wheels then lru-cache might not yet be incorporated in that wheel. If matplotlib is installed natively, which takes longer, than lru-cache most likely comes with it.
Edgar