[컴][파이썬] windows 에서 pip install leveldb

how to install leveldb using pip install / windows python 에서 leveldb 설치하기


windows 에서 pip install leveldb 

windows 용 py leveldb 를 pip install 을 이용해서 설치해 보도록 하자.

환경

os : Windows 7 64bit
python:  python 2.7.5 64bit


절차


  1. leveldb.pyd 만들기
  2. leveldb-0.193-cp27-none-win_amd64.whl 만들기
  3. pip install leveldb-0.193-cp27-none-win_amd64.whl



leveldb.pyd

원래 py-leveldb 를 pip install 로 설치하면 source 를 build 하게 된다. 그런데 기본적으로 windows build 를 지원하지 않는다.

그래서 windows build 를 가능하도록 visual studio 에서 작업해서 공유한 분이 있다.
여하튼 덕분에 쉽게 lib.pyd 를 만들었는데, 그리고 이녀석을 lib/site-packages 에 copy 해 넣으면 사용하는 데에는 문제가 없다.

문제는 pip install 의 package management 에 install 된 것으로 인식되지 않는 것이다. 이것을 위해서 직접 .whl 을 만들어서 pip install 로 .pyd 를 설치하기로 했다.


.whl 만들기

setup.py bdist_wheel

.whl 이 있으면 아래처럼 pip install 을 해서 설치할 수 있다.
c:\> pip install package-ver-1.2.whl

.whl 을 만들기 위해서 아래 명령어를 이용하면 된다.
c:\> python setup.py bdist_wheel
이 명령어를 이용하기 위해서는 wheel package 가 필요하다.
c:\> pip install wheel

setup.py

이제 setup.py 를 만들면 된다. 이 setup.py 에 package 에 들어갈 정보나 파일등에 대한 정보를 적어주게 된다.




leveldb .whl 을 위한 setup.py

대부분의 내용은 leveldb-0.193 package 의 setup 에서 가져왔다.

from setuptools import setup, Distribution


class BinaryDistribution(Distribution):
    def is_pure(self):
        return False


setup(
    name = 'leveldb',
    version = '0.193',
    maintainer = 'Arni Mar Jonsson',
    maintainer_email = 'arnimarkj@gmail.com',
    url = 'http://code.google.com/p/py-leveldb/',

    classifiers = [
        'Development Status :: 4 - Beta',
        'Environment :: Other Environment',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: BSD License',
        'Operating System :: POSIX',
        'Programming Language :: C++',
        'Programming Language :: Python',
        'Programming Language :: Python :: 2.4',
        'Programming Language :: Python :: 2.5',
        'Programming Language :: Python :: 2.6',
        'Programming Language :: Python :: 2.7',
        'Programming Language :: Python :: 3.0',
        'Programming Language :: Python :: 3.1',
        'Programming Language :: Python :: 3.2',
        'Programming Language :: Python :: 3.3',
        'Topic :: Database',
        'Topic :: Software Development :: Libraries'
    ],

    description = 'Python bindings for leveldb database library',
    
    data_files=[('lib/site-packages', ['leveldb.pyd']),],

    distclass=BinaryDistribution
)

아래 같이 파일을 놓으면 된다.


.whl file download

만든 .whl file 을 아래에 올려놓았다. 다른 곳에서 작동할지는 확실하지 않다.





댓글 없음:

댓글 쓰기