[Python] source build 후 hashlib (md5) import 오류 발생 시 Develop Tip

요즘에는 Debian 이나 Ubuntu 에 익숙해 져서 패키지 관리에 관심이 없다가,
필요에 따라 특정 기계 혹은 Cross-Compile을 통하여 파이썬을 소스부터 포팅할
경우도 있습니다.

이런 경우에 파이썬을 소스에서부터 build를 하는데 보통은 다음처럼 합니다.

$ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
$ tar xvfz Python-2.7.5.tgz
$ pushd Python-2.7.5
$ ./configure
$ make
$ make test
$ sudo make install
$ popd
$ sudo rm -rf Python*

문제는 make test 시에 발생했습니다.

$ python
Python 2.7.5 (default, May 21 2013, 14:38:12) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/hashlib.py", line 139, in <module>
    globals()[__func_name] = __get_hash(__func_name)
  File "/usr/local/lib/python2.7/hashlib.py", line 91, in __get_builtin_constructor
    raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha1
...

위와 같이 hashlib 오류가 발생합니다.

md5, sha1 등의 해슁 함수를 openssl 라이브러리를 이용하는데 있어,
문제가 발생한 것 같습니다.

이런 경우에는 다음과 같이 해결 합니다.

소스에서 
$ vi Modules/Setup.dist

_socket socketmodule.c timemodule.c
_ssl _ssl.c \
    -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    -L$(SSL)/lib -lssl -lcrypto
_md5 md5module.c md5.c
_sha shamodule.c
_sha256 sha256module.c
_sha512 sha512module.c

위 정도의 내용을 찾아 첫줄의 #을 제거하여 코맨트를 해제한 후,

$ sudo make distclean
$ ./configure
$ make
$ make test
$ sudo make install

의 명령을 넣으면 /usr/local에 python이 설치됩니다.


어느분께는 도움이 되셨기를...

덧글

댓글 입력 영역

구글애드텍스트