SignalIntegrity icon indicating copy to clipboard operation
SignalIntegrity copied to clipboard

Installation problems with release 1.1.8 - due to functools-lru-cache

Open EdgarMerger opened this issue 5 years ago • 3 comments

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

EdgarMerger avatar Apr 15 '20 20:04 EdgarMerger

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.

EdgarMerger avatar Apr 15 '20 20:04 EdgarMerger

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?

PetePupalaikis avatar Oct 10 '20 16:10 PetePupalaikis

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

EdgarMerger avatar Mar 01 '21 10:03 EdgarMerger