Python matplotlib framework под macosx?

Я получаю эту ошибку:

/sw/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py:235: UserWarning: Python не установлен как фреймворк. MacOSX бэкэнд может работать неправильно, если Python не установлен как фреймворк. Дополнительную информацию см. В документации Python. установка Python в качестве основы для Mac OS X

Я установил python27, используя fink, и используя матплотблинг по умолчанию, использует инфраструктуру macosx.

Ответы

Ответ 1

Существует два способа создания и установки Python в Mac OS X. Один из них является традиционной стандартной библиотекой Unix-y. Другой известен как установка framework, макет файла, аналогичный другим фреймворкам в OS X, где все каталоги компонентов (include, lib, bin) для продукта установлены как подкаталоги под основной каталог. Проект Fink устанавливает Pythons с использованием метода общей библиотеки Unix. Большинство других дистрибьюторов, включая поставляемые Apple Pythons в OS X, установщики python.org и проект MacPorts, устанавливают версии framework Python. Одним из преимуществ установки фреймворка является то, что он будет работать с различными вызовами API OS X, которые требуют подключения оконного менеджера (как правило, интерфейсов, связанных с GUI), потому что интерпретатор Python упакован как пакет приложений в рамках.

Если вам нужны функции matplotlib, для которых требуются GUI-функции, самым простым подходом может быть переход на MacPorts, который также упаковывает matplotlib (port py27-matplotlib) и его зависимости. Если да, будьте осторожны, чтобы не смешивать пакеты между Fink и MacPorts. Лучше всего придерживаться того или другого, если вы не будете очень осторожны. Соответственно отрегулируйте путь к оболочке; было бы безопаснее удалить все пакеты Fink и установить версии MacPorts.

Ответ 2

Некоторые пользователи могут не захотеть изменить бэкэнд для всех своих скриптов. Эта страница - http://matplotlib.org/faq/usage_faq.html#what-is-a-backend - говорит по-другому:

import matplotlib
matplotlib.use('TkAgg')

Вам нужно сделать это, прежде чем импортировать подпакет matplotlib или сторонний пакет, который зависит от matplotlib.

Ответ 3

Возможно, вы можете использовать бэкэнд Agg, который не требует никакой дополнительной установки. Просто поместите backend : Agg в ~/.matplotlib/matplotlibrc

Ответ 4

Это отображается для меня при переключении на OSX 10.10 (Yosemite). Я исправил его, переключившись на WXAgg.

fink install wxpython300-py27
mkdir ~/.matplotlib
echo "backend : WXAgg" >>~/.matplotlib/matplotlibrc

http://matplotlib.org/1.3.0/faq/usage_faq.html#what-is-a-backend

Если файл matplotlibrc там не найден, поместите matplotlibrc и проверьте местоположение:

import matplotlib as mpl
mpl.get_configdir()

Ответ 5

Я ударил эту проблему, используя дистрибутив Anaconda Python на моем компьютере и виртуальную среду conda с Python 3.4.

После выполнения "pip install matplotlib", я мог бы импортировать matplotlit в моем коде, но это дало бы ошибку, когда я попытался построить изображения.

Итак, я вернулся к терминалу и использовал рекомендованную команду conda для Anaconda Python ( "conda install matplotlib" ), и проблема была решена сама собой (помните, что все это было в среде, которую я создал с помощью команды conda инструмент http://conda.pydata.org/docs/using/envs.html). В моей системе работает Mac OSX 10.10.5.

Ответ 6

Если вы столкнулись с одной и той же проблемой, даже после добавления "backend: TkAgg" в ~/.matplotlib/matplotlibrc может возникнуть проблема с вашей виртуальной средой.

Поэтому, если вы используете python3, используйте venv вместо virtualenv.

Чтобы использовать venv с python3, используйте python -m venv my-virtualenv чтобы создать виртуальную среду и использовать source my-virtualenv/bin/activate для активации virtualenv.

Отдых такой же, как virtualenv. В противном случае используйте PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install xxx если вы хотите использовать virtualenv как свою виртуальную среду.

Ответ 7

Как правило, я использую

import matplotlib
matplotlib.use('Agg')

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

If you are on Python 3, use venv instead of virtualenv:

python -m venv my-virtualenv
source my-virtualenv/bin/activate

от: https://matplotlib.org/faq/osx_framework.html

Ответ 8

Импортируйте библиотеку, следуя кодовым последовательностям для меня. При этом не нужно создавать новую папку:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

Ответ 9

Ознакомьтесь с официальным FAQ для Работа с Matplotlib на OSX. У него есть несколько решений в зависимости от вашей ситуации. Тот, который работал у меня, это:

  • Шаг 1: Открыть терминал
  • Шаг 2. Выполнение conda install python.app для установки python.app
  • Шаг 3: Запустите python script с помощью pythonw, например. pythonw my_script.py

Ответ 10

Простое наложение новой команды для запуска python в ~/.bash_profile сделает трюк.

alias vpython3 =/Library/Frameworks/Python.framework/Версии /3.6 (замените своей собственной версией python)/bin/python3

затем 'source ~/.bash_profile' и используйте vpython3 для запуска python3.

Объяснение: Python по умолчанию установлен как фреймворк на mac, но использование virtualenv связывает вашу команду python3 под созданной виртуальной средой, а не с указанным выше файловым каталогом ("который python3" в терминале, и вы это увидите). Возможно, Matplotlib должен найти bin/include/lib/и т.д. В структуре python.

Ответ 11

Я использую OSX 10.14 с Python 3.7.1, установленным с pyenv.

Я не смог заставить работать какой-либо из бэкэндов, перечисленных в других ответах (TkAgg, WXAgg, macosx).

Вместо этого сработал более Qt5Agg бэкэнд Qt5Agg, установленный с помощью pip install pyqt5, а затем создающий файл ~/.matplotlib/matplotlibrc содержащий backend: Qt5Agg (согласно другим ответам).