manywaypark's Blog
개발, 검색, 함수

'비함수형 언어/Python'에 해당되는 글 2건

  1. 2017.04.11 MacPort / Python - pointer being freed was not allocated
  2. 2017.01.19 ImportError: No module named '_tkinter'

문제:

macport로 python36을 설치하고, 안내에 따라 py36-readline을 설치했는데 아래 처럼 crash가 났다.

$ python

Python 3.6.1 (default, Mar 22 2017, 15:53:21) 

[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> ''.join(sorted('azbasdfasdf'))

Python(4369,0x7fffa0cba3c0) malloc: *** error for object 0x10592a4f0: pointer being freed was not allocated

*** set a breakpoint in malloc_error_break to debug

Abort trap: 6



해결:

$ sudo port uninstall py36-readline

$ sudo port install python36 +readline


python36 package를 설치하고 나면 py36-readline도 꼭 설치하라는 식의 메시지가 나오는데 이거 잘못된 것인 듯


ref: https://trac.macports.org/ticket/53360


happy hackin'

problem:

python에서 matplotlib를 사용하여 그래프를 화면에 출력하려고 할때 아래와 같은 오류 메시지가 나오고 제대로 안되는 경우가 있다.


>>> import tkinter

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/home/dhpark/.asdf/installs/python/3.5.2/lib/python3.5/tkinter/__init__.py", line 35, in <module>

    import _tkinter # If this fails your Python may not be configured for Tk

ImportError: No module named '_tkinter'


__init__.py 파일에서 모듈 import에 실패한다는 것인데 해결 방법은 찾아보면 간단하다.


solution #1:

우분투의 경우 python3-tk, tk-dev 패키지 두개만 깔면 해결된다.

그러나 이 방법은 package manager를 통해서 python3를 깔았을때에만 적용되는 것으로 보인다.


solution #2:

요즘은 버전간의 자유로운 전환을 위해서 virtualenvasdf같은 유틸리티의 도움을 받는 경우가 많은데 (물론 내경우도 포함), 이 경우에는 #1의 해법이 통하지 않는다.

상기 패키지2개를 설치한 후에 python을 지우고 다시 깔아야한다.

asdfvirtualenv같이 설치과정에서 compile을 거치는 놈들은 시스템에 설치안된 것을 생략해버리는 것으로 추측된다. 정확한 원인은 좀 더 봐야겠지만 귀찮다.


happy hackin'

1 
분류 전체보기 (306)
잡담 (20)
함수형 언어 (65)
emacs (16)
java (18)
tips & tricks (154)
사랑 (1)
가사 (0)
독서 (4)
mobile (6)
비함수형 언어 (2)
Python (2)

공지사항

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

03-29 19:33