윈도우 10 환경에서 steem API 라이브러리 설치하기 with python

in #kr-dev7 years ago

20180105 python title.png

안녕하세요 @tmkor 입니다.

오늘은 python에서 steem API를 사용할 수 있도록 하는 steem-python을 설치해보려고 합니다.

'응? 단순한 설치 글인데 무슨 거창한 포스팅이냐?' 하시는 분들은.. 세상사라는게 단순한 일일 수록 힘들때가 있음을 이해해주시기 바랍니다. ㅠㅠ

  • 본 문서는 python3 버전을 기준으로 작성되었습니다.

준비물

  • Python 3.5
    • 주의 : 3.6은 안됩니다. 'ㅅ') 뭔 방법을 써도 설치가 안되었습니다.
  • Visual Studio 2015용 Build Tools
    • 2017용도 괜찮습니다. 이 경우 setuptools 버전이 34.4.0 이상이어야 합니다.
  • 메모장

설치방법

  1. Python 3.5.x를 설치합니다. (TIP : PATH 등록 체크박스에 체크합시다.)
  2. Visual Studio 2015용 Build Tools를 설치합니다.
  3. Visual C++ 2015 x64 x86 cross Build Tools Command Prompt를 실행합니다.
    • 2018-01-05-18-23-06.png
  4. pip install -U steem
    • 여기까지 문제가 없다면 거의 다 된 것입니다!
    • 그렇지만 import를 시키면 에러가 뿜뿜 나옵니다. 'ㅅ')
    • winrandom 모듈 import에서 에러가 나는 것인데.. 이를 fix 해봅시다.
  5. python -m site 를 입력해서 site-package 경로를 알아냅니다.
    • 2018-01-05-18-25-38.png
  6. %site-package%\Crypto\Random\OSRNG 폴더로 이동합시다.
  7. nt.py 파일을 엽니다.
  8. import winrandomfrom . import winrandom으로 바꿔줍시다.
    • 2018-01-05-18-26-43.png

테스트 코드

  • 정상 작동하는지 테스트 코드를 돌려봅시다. 아래 코드는 특정 id의 블로그의 최신글을 가져오는 것 입니다.
#%% run with jupyter
from steem.post import Post
from steem.blog import Blog
import pprint
#%% import steem module
b = Blog('tmkor') # get a blog
p = next(b) # get a post
pj = p.export() # download a post
pprint.pprint(pj) #print a post
  • 결과확인

2018-01-05-19-23-05.png


모두 즐거운 개발 되시길 바랍니다. :D

Sort:  

steem-python은 python3.6을 요구하지 않나요? 제가 설치할 때는 3.6으로 upgrade하라고 하던데요? 설치한 steem-python version을 알려주시겠어요?

설치 명령은 pip install steem 으로 하였습니다.
이게 좀 특이한게.. 리눅스(ubuntu) 환경에서는 3.6을 요구해서 3.5에서 안깔리고..
윈도우 환경에서는 3.6에서는 컴파일이 안되고 반대로 3.5에서는 잘 깔립니다. 'ㅅ');
이것때문에 윈도우에서 파이썬을 몇번이나 다시 깔았지요 ㅜㅜ;;

곰곰히 생각해보니, python 버전의 차이때문에 발생한게 아닌가 싶습니다.
windows의 경우 3.5.4가 설치되어 있고 ubuntu의 경우 3.5.3이 설치되어 있네요.
가정으로는.. 3.6에 추가된 명령어 집합을 사용하는데, 이게 3.5.4에 추가되어서 설치되는지도 모르겠습니다. python3.5.4로 한번 해보세요! ^^

애고 너무 고생하는거 아닌가요? 여기까지만 하세요.

윈도우에 설치된 버전은 0.18.103 입니다.

우분투 (14.04 LTS + python 3.6 venv) 역시 0.18.103 입니다. 희안합니다... 'ㅅ';;

열나게 안되서 포기했던건데 ㅋ -0-
버전 다운은 생각못했네요

꽤나 고생했습니다;
Scrypt라는 라이브러리가 문제였는데 3.6의 경우 pypi에서 제공하는게 바이너리가 아니여서 따로 컴파일을 해줘야 합니다. 근데 사용된 header중에 윈도우 VC compiler에 없는게 있어서... 'ㅅ') 뭐 어떻게든 컴파일 해볼까 하다가 잘 안되었고.. 알아보니 python 3.5까지는 바이너리로 컴파일된걸 줘서 별 문제가 없었습니다.

덕분에 성공!!! 했어요. 원인은 컴 이름에 한글을 넣어서 발생한 문제였네요. 글대로 하니 설치 완료!! 감사드립니다.

한글이 참 좋은 언어인데~ 웹 표준처럼 세계 표준 알파뱃이되면 참 좋겠어요 ㅜㅜ) 맨날 인코딩으로 싸우지 않게요 ㅎㅎ
설치 되셨다니 다행입니다! ^^

개발용 PC에 steem 설치할려고 하니 파이썬 3.6설치하라고 오류가 뜨네요. 제 노트북은 설치가 되었는데, 여기는 또 안되네요. 해결책 있는지요?
python error.jpg

아이고.. 이 글을 매우 늦게 보았습니다. steem 라이브러리 업데이트 하면서 최소 요구사항을 코드에 하드코딩 해놓았나보네요.. ㅠㅠ)
여러가지 방법이 있어 보이는데, @nhj12311 님이 올려주신 글이 가장 확실한 해결책으로 보입니다.
https://steemit.com/kr-dev/@nhj12311/python-3-6-steempy
윈도우 3.6 환경에서 steem-python을 설치하기 힘든 이유가 선 컴파일된 scrypt 라이브러리가 없기 때문인데, 이 부분을 해결하는 솔루션 입니다.
참고 부탁드려요! ^^

감사요!! 근데 파이썬은 패포판으로 못 만드나요? pyinstaller로 해 보니 lib가 막 빠지던데요?

제가 배포판 만드는 원리를 잘 모르기 때문에 확실한 답변을 드리긴 어렵네요 ^^;
pyinstaller를 조사해보니 특정 라이브러리만 추가 가능해 보입니다.
https://github.com/pyinstaller/pyinstaller/wiki/Supported-Packages 여기에 없는 패키지는 안될 가능성이 높네요.
steem-python의 경우 워낙 많은 라이브러리와 dependency를 맺고 있는데 거의 다 해당이 안되기 때문에 배포판을 만들기는 어려워 보입니다.
만약에 서비스화 하시려면 웹서버를 구동시키는게 좋을 듯 합니다!

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 62827.81
ETH 2583.62
USDT 1.00
SBD 2.73