Windows 7 64 bit 에서 scrypt package 64 bit 버전 설치
환경
- windows 7 64bit 에 scrypt 설치
- python version : python 2.7.5 64bit
64 bit 에 scrypt 를 설치하려 보니 제공되는 .whl 이 없었다. 그래서 할 수 없이 source 로 부터 compile 을 했다. 과정을 간략하게 설명하려 한다.
절차
- Visual Studio Community Update 5 설치 : Download the latest Visual Studio Community 2013 with Update 5
- scrypt source download : mhallin / py-scrypt / Downloads — Bitbucket
- OpenSSL-Win64 설치 :
- scrypt 의 setup.py 수정
- c:\Python27\Lib\distutils\msvc9compiler.py 수정
- python setup.py install
scrypt 의 setup.py 수정
win32 부분의 OpenSSL 관련 path 를 자신의 경로와 맞게 수정 해준다. 필자의 경우- d:\OpenSSL-Win64
에 설치하였기에 아래처럼 수정하였다.
#!/usr/bin/env python from setuptools import setup, Extension import sys import platform includes = [] library_dirs = [] extra_sources = [] CFLAGS = [] if sys.platform.startswith('linux'): ... elif sys.platform.startswith('win32'): define_macros = [('inline', '__inline')] library_dirs = ['d:\OpenSSL-Win64\lib'] libraries = ['libeay32', 'advapi32'] includes = ['d:\OpenSSL-Win64\include', 'scrypt-windows-stubs/include'] extra_sources = ['scrypt-windows-stubs/gettimeofday.c'] elif sys.platform.startswith('darwin') and platform.mac_ver()[0] < '10.6': ... else: ...
msvc9compiler.py 수정
기본적으로 msvc9compiler.py 를 이용해서 Visual Studio Compiler 의 경로를 알아내는데, 이녀석이 VC 2008 까지는 잘 맞을 수 있는데, VC 2013 에서는 맞지 않는다. 그래서 아래같은 error 가 발생한다.... File "C:\Python26\lib\distutils\msvc9compiler.py", line 274, in query_vcvarsall raise ValueError(str(list(result.keys()))) ValueError: [u'path']
그래서 경로를 수정해 줬다. msvc9compiler.py 의 find_vcvarsall 부분을 아래처럼 수정해 줬다.
def find_vcvarsall(version): ... if not productdir: log.debug("No productdir found") return None vcvarsall = os.path.join(productdir, "vcvarsall.bat") # 수정 vcvarsall = 'd:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\vcvarsall.bat' if os.path.isfile(vcvarsall): return vcvarsall log.debug("Unable to find vcvarsall.bat") return None
설치 완료
... Installed d:\envs\ethereum\lib\site-packages\scrypt-0.7.1-py2.7-win-amd64.egg Processing dependencies for scrypt==0.7.1 Finished processing dependencies for scrypt==0.7.1
댓글 없음:
댓글 쓰기