Я запускаю некоторый основной код в редакторе кода Visual Studio на MacOSX:

    import matplotlib.pyplot as plt
    import numpy as np
    x = np.linspace(0, 20, 100)
    plt.plot(x, np.sin(x))
    plt.show()

... и не может получить изображение файла png / svg, которое появится после запуска этого. Это также не останавливает выполнение, и я должен вручную завершить процесс. Однако, если я запускаю это непосредственно в Терминале (каждая строка строки кода для строки), я получаю полученное изображение. Один из обходных путей - просто сохранить файл (plt.savefig ('foo.png')). Это похоже на работу - изображение сохраняется в указанном месте файла. Тем не менее, было бы хорошо увидеть изображение, появившееся после запуска кода.

5
thomassantosh 29 Май 2017 в 05:25

2 ответа

Лучший ответ

При запуске кодов matplotlib из терминала у меня возникает такой же вид зависания приложения после сохранения изображения в файл. В этом случае один «обходной путь», который всегда работал для меня, это отключить блокировку. В основном измените ваш код следующим образом:

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 20, 100)
plt.plot(x, np.sin(x))
plt.show(block=False)
input('press <ENTER> to continue')

Это не идеально, но изображение сохраняется правильно, и приложение останавливается после того, как вы нажмете ENTER в терминале. Надеюсь это поможет.

2
Thomas Kühn 12 Сен 2018 в 05:08

Я столкнулся с той же проблемой, и вот что я сделал, чтобы решить ее.

Поскольку код выполняется без каких-либо ошибок, но также не генерирует никакого графика и его необходимо завершить вручную, сложно понять, что происходит. Я пытался запустить python2.7 test.py Это работает, сюжет генерируется, но python3 test.py не работает.

Итак, вот что вам нужно сделать -

Запустите pip install matplotlib --upgrade, чтобы обновить matplotlib. Это не решает проблему, но теперь ошибка печатается.

«RuntimeError: Python не устанавливается как фреймворк» ......

Итак, наконец, чтобы решить эту проблему, обратитесь к работе с Matplotlib в macOS

Поскольку я использую Anaconda, все, что мне нужно сделать, это conda install python.app, а затем использовать pythonw для запуска всех сценариев. Я надеюсь, что вы также найдете решение для вашего конкретного случая из FAQ.

В целом, это проблема Matplotlib, поэтому обновление (или переустановка) и попытки использовать разные версии Python должны помочь вам.

0
wootman 16 Май 2018 в 05:14