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
(согласно другим ответам).