It seems that you have the lmfit module installed for python 3.8 and you are running python 3.7 on Spyder for which the module is not installed.
Preferrable method for you is option 3 as you said you want to fix it for Spyder. The blockquote explains the detailed procedure to do that.
- A possible fix is to change the symbolic link and fix it to
python 3.8. You can check how to change the path here (Follow the instructions and replace 3.6 with 3.7 and 3.7 with 3.8 for your case)
- Use a virtual environment to juggle between multiple versions.
- Change the version which spyder uses for python. To do this:
Open Preferences in Spyder => Tools - Preferences
Click on Python Interpreter from the options in left
Now the Selected option, right below Select the Interpreter for all Python Consoles should be Default (i.e. use the same as Sypder's),
Now change it to Use the following interpreter: and it will ask for
a path below it.
Provide the path to your Python 3.8 installation folder.
You can find the path using:
whereis python3.8 in your ubuntu command line interface (Note for windows where python3.8 should work fine).
In general the path should be something like \usr\bin\python3.8 but it depends on
how you have installed it. Take the path to python3.8 and paste it
in that path. You can also browse for python3.8 in that path and
select it manually from the spyder interface.
Now Apply it and Ok it. Restart Spyder and you should be
running python3.8 and now you can import lmfit in there.
A visual representation of this process (except on how to find the path) could be found here