Nice programing

macosx에서 python matplotlib 프레임 워크?

nicepro 2020. 12. 10. 21:08
반응형

macosx에서 python matplotlib 프레임 워크?


이 오류가 발생합니다.

/sw/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py:235 : UserWarning : Python이 프레임 워크로 설치되지 않았습니다. Python이 프레임 워크로 설치되지 않은 경우 MacOSX 백엔드가 제대로 작동하지 않을 수 있습니다. Mac OS X에서 Python을 프레임 워크로 설치하는 방법에 대한 자세한 내용은 Python 설명서를 참조하십시오.

fink를 사용하여 python27을 설치했으며 기본 matplotlib를 사용하고 macosx 프레임 워크를 사용하고 있습니다.


Mac OS X에서 Python을 빌드하고 설치할 수있는 방법에는 두 가지가 있습니다. 하나는 전통적인 플랫 Unix-y 공유 라이브러리입니다. 다른이가로 알려져 framework설치, 파일 구성 요소 디렉토리 (모든 OS X에 다른 프레임 워크와 비슷한 레이아웃 include, lib, bin제품에 대한)가 메인 프레임 워크 디렉토리에서 하위 디렉토리로 설치됩니다. Fink유닉스를 사용하여 프로젝트를 설치한다 비단뱀 라이브러리 방법을 공유했습니다. OS X의 Apple 제공 Python, python.org설치 프로그램 및 MacPorts프로젝트를 포함한 대부분의 다른 배포자는 다음을 설치합니다.frameworkPython 버전. 프레임 워크 설치의 장점 중 하나는 Python 인터프리터가 프레임 워크 내에서 앱 번들로 패키징되기 때문에 창 관리자 연결 (일반적으로 GUI 관련 인터페이스)이 필요한 다양한 OS X API 호출에서 제대로 작동한다는 것입니다.

GUI 함수가 필요한 matplotlib의 함수가 필요한 경우 가장 간단한 방법은 matplotlib ( port py27-matplotlib) 및 해당 종속성을 패키지화하는 MacPorts로 전환하는 것 입니다. 그렇다면 Fink사이에 패키지를 혼합하지 않도록주의하십시오 MacPorts. 정말로 조심하지 않는 한 둘 중 하나를 고수하는 것이 가장 좋습니다. 그에 따라 쉘 경로를 조정하십시오. 모든 Fink 패키지를 제거하고 MacPorts 버전을 설치하는 것이 가장 안전합니다.


일부 사용자는 모든 스크립트의 백엔드를 변경하고 싶지 않을 수 있습니다. 이 페이지 -http ://matplotlib.org/faq/usage_faq.html#what-is-a-backend-다른 방법을 알려줍니다.

import matplotlib
matplotlib.use('TkAgg')

의 하위 패키지 matplotlib또는에 종속 된 타사 패키지를 가져 오기 전에이 작업을 수행해야합니다 matplotlib.


선택적으로 Agg추가 설치가 필요없는 백엔드를 사용할 수 있습니다 . 그냥 넣어 backend : Agg~/.matplotlib/matplotlibrc


이것은 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()

내 컴퓨터에 Python의 Anaconda 배포판과 Python 3.4가 포함 된 가상 conda 환경을 사용하여이 문제를 해결했습니다.

"pip install matplotlib"를 수행 한 후 코드에서 matplotlit을 제대로 가져올 수 있지만 이미지를 플롯하려고하면 오류가 발생합니다.

그래서 저는 터미널로 돌아가서 Anaconda Python에 권장되는 conda 명령 ( "conda install matplotlib")을 사용했고 문제는 저절로 해결되었습니다 (이 모든 것이 http 에서 conda 명령 도구를 사용하여 만든 환경 내에 있음을 명심 하십시오. : //conda.pydata.org/docs/using/envs.html ). 내 시스템은 Mac OSX 10.10.5를 실행하고 있습니다.


pyenv 와 함께 설치된 Python 3.7.1과 함께 OSX 10.14를 실행하고 있습니다 .

나는 어떤 가져올 수 없습니다 백엔드 나를 위해 일을 다른 답변에 나열된을 ( TkAgg, WXAgg, macosx).

대신 작동하는 것은 최신 Qt5Agg백엔드이며으로 설치된 pip install pyqt5다음 (다른 답변에 따라) ~/.matplotlib/matplotlibrc포함 하는 파일 을 만듭니다 backend: Qt5Agg.


다음 코드 시퀀스로 라이브러리를 가져 오십시오. 이를 통해 새 폴더를 만들 필요가 없습니다.

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

당신도 추가 한 후 같은 문제에 직면하는 경우 "backend: TkAgg"~/.matplotlib/matplotlibrc가상 환경을 자신의 힘 문제.

따라서 python3에 있다면 virtualenv 대신 venv사용하십시오 .

python3과 함께 venv를 사용하려면 python -m venv my-virtualenv가상 환경을 만들고 source my-virtualenv/bin/activatevirtualenv를 활성화하는 데 사용하십시오.

나머지는 virtualenv와 동일합니다. 그렇지 않으면 PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install x.x.xvirtualenv를 가상 환경으로 사용하려는 경우 사용 하십시오.


일반적으로 나는

import matplotlib
matplotlib.use('Agg')

이것을 해결하기 위해. 그러나 최근에 코드베이스에서 테스트를 실행하는이 프레임 워크 오류가 발생했습니다. 매우 제한적으로 변경해야합니다. 이 경우 가상 환경을 설정하는 방법에 대한 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


OSX에서 Matplotlib 작업 에 대한 공식 FAQ를 확인하십시오 . 상황에 따라 여러 가지 솔루션이 있습니다. 나를 위해 일한 것은 다음과 같습니다.

  • 1 단계 : 터미널 열기
  • 2 단계 : 실행 conda install python.app하여 python.app 설치
  • 3 단계 : pythonweg로 파이썬 스크립트 실행pythonw my_script.py

~ / .bash_profile에서 Python을 시작하는 새 명령의 별칭을 지정하면됩니다.

alias vpython3 = / Library / Frameworks / Python.framework / Versions / 3.6 (자신의 Python 버전으로 대체) / bin / python3

then 'source ~/.bash_profile' and use vpython3 to launch python3.

Explanation: Python is actually by default installed as framework on mac, but using virtualenv would link your python3 command under the created virtual environment, instead of the above framework directory ('which python3' in terminal and you'll see that). Perhaps Matplotlib has to find the bin/ include/ lib/,etc in the python framework.

참고URL : https://stackoverflow.com/questions/4130355/python-matplotlib-framework-under-macosx

반응형