728x90
반응형

 

 

파이썬 코드를 짜다보니 matplotlib.pyplot, matplotlib.image 라이브러리를 import 해야하는데 자꾸 에러가 떠서 진도를 못나갔다...

2.x 버전과 충돌이 나는가 싶어 모두 삭제도 하고 3.x 버전을 다시 깔기도 했는데 여전히 안되서 뭐가 문젠지 침착하고 곰곰히 생각해봤다.

아나콘다 배포판에는 기본적인 (그래프 그려주기, 이미지 띄우기 등...) 라이브러리들을 포함하여 배포된다.  numpy, matplotlib 와 같은... 그런데 왜 안되나 싶었더니 파이썬 버그가 존재했다.

 

그래서 정리할겸 하는 Python Anaconda 설치 및 환경설정 포스팅

 

 

 

 

1. Anaconda 통합환경 설치

 

https://www.continuum.io/downloads

 

 

Anaconda는 배포판이다. 즉, 사용자가 설치를 한 번에 수행할 수 있도록 필요한 라이브러리 등을 하나로 정리해 둔 것이다.

 

설치 환경 : Windows 10 64bit

 

필자는 64비트용 Python 3.6 버전을 설치해 주었다.

 

 

 

만약 옛 버전을 찾고자 한다면 스크롤을 내려 아래 버튼을 누르면 다양한 버전들이 나타난다.

 

 

 

 

 

설치 화면이 나타나면 NEXT 를 누른 후 설치 타입을 다음과 같이 설정해준다.

 

 

Next !

 

 

 

동의 !

 

 

 

All Users 선택

 

 

 

폴더를 위와 같이 C:\Anaconda3 으로 설정

 

 

 

 

둘다 체크 후 설치 진행

 

 

설치가 완료되면 파이썬이 잘 설치되었는지 확인해야한다.

 

 

 

 

 

 

 

 

 

 

2. 파이썬 인터프리터 실행, 버전 및 기타 정보 확인

 

먼저 파이썬 인터프리터를 실행하기 위해

 

C:\Anaconda3\Lib\idlelib 로 들어간다.

 

 

그 다음 다음과 같이 idle.bat 파일을 우클릭 - 보내기 - 바탕화면에 바로가기 만들기

 

 

 

 

바탕화면에 생성된 배치 파일을 실행 한 후, 다음과 같이 print 문을 통해 실행 해 볼 수 있다.

 

 

 

 

 

 

 

 

그리고 버전 확인 및 기타 정보 확인은 Anaconda Prompt  를 실행시켜 확인 할 수 있다.

 

 

 

conda --version

 

 

 

 

 

conda update conda

 

이는 최신버전으로 업데이트 할 때 실행하면 된다. 일단은 n

 

 

 

 

conda info : 설치된 환경

conda info -e : 설정된 환경

실행환경을 설정할 수도 있다.

 

 

 

 

 

 

 

 

3. Anaconda spyder 사용하기

 

 

파이썬만 설치하면 IDLE 통합 개발 환경이 생기는데, 아나콘다를 설치하니 이와 같은 환경이 생기지 않고, Spyder 라는게 생겼다.  원하는 내용을 코딩 한 뒤 파일을 끌어다 넣으면 다음과 같이 나타나고, Run(세모버튼)을 해주면 결과를 바로 볼 수 있다.

 

여기서 주의 할 점은 만약 import matplotlib.pyplot as plt 이 문장에서 에러가 날 수 있다.

필자도 한번 에러가 나서 다음과 같은 사항을 고쳤다.

만약 임포트 해보고 안되면 다음과 같은 방법을 쓰길 바란다.

제대로 잘 실행된다면 생략해도 된다.

 

 

3.1 matplotlib 또는 numpy import 에러

 

 

임포트를 했는데 다음과 같은 에러가 뜰 때가 있다.

 

>>> import matplotlib.pyplot as pp
Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 1412, in <module>
    fontManager = pickle_load(_fmcache)
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 963, in pickle_load
    with open(filename, 'rb') as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Anshul\\.matplotlib\\fontList.py3k.cache'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 29, in <module>
    import matplotlib.colorbar
  File "C:\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 34, in <module>
    import matplotlib.collections as collections
  File "C:\Anaconda3\lib\site-packages\matplotlib\collections.py", line 27, in <module>
    import matplotlib.backend_bases as backend_bases
  File "C:\Anaconda3\lib\site-packages\matplotlib\backend_bases.py", line 62, in <module>
    import matplotlib.textpath as textpath
  File "C:\Anaconda3\lib\site-packages\matplotlib\textpath.py", line 15, in <module>
    import matplotlib.font_manager as font_manager
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 1420, in <module>
    _rebuild()
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 1405, in _rebuild
    fontManager = FontManager()
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 1043, in __init__
    self.ttffiles = findSystemFonts(paths) + findSystemFonts()
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 312, in findSystemFonts
    for f in win32InstalledFonts(fontdir):
  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 231, in win32InstalledFonts
    direc = os.path.abspath(direc).lower()
  File "C:\Anaconda3\lib\ntpath.py", line 535, in abspath
    path = _getfullpathname(path)
ValueError: _getfullpathname: embedded null character
>>>

 

이는 matplotlib 가 제대로 깔리지 않은게 아니고, 파이썬의 버그이다.

 

어떤문자 길이의 관계없이 문자열 값을 올바르게 잘라내지 않았고, 문자열에서 처리할 수 없는 null 문장이 포함됬다는 건데... 각설하고 다음과 같이 고치면 된다.

 

먼저 에러에서

 

  File "C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py", line 231, in win32InstalledFonts
    direc
= os.path.abspath(direc).lower()

이 부분에 주목한다.

 

그리고 아나콘다가 설치된 폴더에서 font_manager.py 파일을 찾아 편집모드에 들어간다.

IDLE 가 있을 경우 이를 통해 편집하고, 아니라면 스파이더에 파일을 끌어와 편집한다.

 

 

위와 같이 direc = direc.split('\0', 1)[0] 라는 문장을 추가해준다.

그러면 오류 해결!

 

그리고서 아래와 같이 실습해 볼 수 있다.

 

 

 

1. 사진 띄우기 예제

 

 

 

2. 그래프 그리기 예제

 

 

 

 

참고 자료 1 : https://stackoverflow.com/questions/34004063/error-on-import-matplotlib-pyplot-on-anaconda3-for-windows-10-home-64-bit-pc

728x90
반응형