jkrogager / VoigtFit

Python code to fit absorption lines semi-interactively
http://voigtfit.readthedocs.io/
MIT License
28 stars 12 forks source link

reboot after running program #31

Closed fcashman closed 4 years ago

fcashman commented 4 years ago

I have installed VoigtFit for Python 3 successfully for MacOS Mojave v.10.14.6. I ran the program with a minimal input file to play with the program, but the program crashes my computer resulting in the computer automatically restarting after the output "Mark left continuum region, left and right boundary" appears in the terminal. I do not get any error, my computer completely reboots. I have attached the sample input file. I'm wondering if this is a backend compatibility issue??? I currently have my backend set to Qt5Agg in my matplotlibrc file. I also attached a text file of the terminal results. vfit_test.txt terminal_results.txt

Update: I updated the input file to include "norm" on the data line since the data were normalized. It will run a fit successfully, but only through the non-interactive option. If I include interactive options, it reboots my computer as before. Thus, I am still thinking that I might be having a backend compatibility issue. vfit_test_interactive.txt vfit_test_noninteractive.txt

jkrogager commented 4 years ago

Interesting issue. I am not able to reproduce this on my laptop (running macOS 10.14.6 too) so my guess is that it's a backend issue as you say. Have you tried using a different backend in your matplotlibrc file? Are you using a virtual environment when running the code?

fcashman commented 4 years ago

Hi. I am not using a virtual environment. The code runs without error, its just that as soon any plot window is cued, I lose all visual display functionality (I'm guessing Mac is doing the restart as a fail-safe response) which made me think it's a backend issue. The results of the fit are printed in the terminal when my system comes back up. And if I run the code without any interactive commands, then there is no problem. Originally I had my backend set to TkAgg for use with the linetools package on my old laptop, but found that this backend no longer works for linetools with Mojave on my newer machine, so I changed my backend to Qt5Agg in my matplotlibrc file. This worked well with linetools. I am curious which backend you are using on your machine. It may be that I just need to switch between backends between programs, but I'm secretly hoping that there is one backend that will work for both. Honestly, the sudden restarts were so unenjoyable that I didn't want to test other backends just yet, and wanted to see which backend you were using before I started experimenting.

jkrogager commented 4 years ago

I'm using the native "macosx" backend in my python environment, but VoigtFit is actually set to override this to TkAgg (when running from the terminal). I've tried to disable this as this hardcoded override might have caused the issue. I've updated the code on pip so please try to see if this problem persists in the latest version 3.11.5.4. Fingers crossed! "One backend to rule them all!" ;-)

fcashman commented 4 years ago

Hi. I upgraded to 3.11.5.4 and image plot windows now open and the program works without rebooting. For any documentation purposes, it executes if the backend parameter is omitted in matplotlibrc (using the first working backend in the default list) or if the backend is specified separately. Thank you so much for adding this flexibility to the code, I truly appreciate it! "One backend to rule them all!" :-)

jkrogager commented 4 years ago

Great! I'm happy it worked out. :)