[질문] 파이썬 exe 만들기와 SteemDB 최신 값

in #kr7 years ago (edited)

두 가지 질문이 있습니다.
두 번째 질문은 답을 찾았어요. 첫번째 질문은 아직 답을 못 찾았어요.

파이썬 프로그램을 exe 만들기

pyinstaller 라는 package를 이용하면 파이썬 프로그램을 exe로 만들 수 있다고 합니다. steem-python이 포함되지 않는 파이썬 프로그램은 실제로 만들어집니다.
그런데 steem-python을 사용하는 경우에는 .exe를 실행하면 아래와 같은 오류가 나옵니다.
pyinstaller.jpg

원인이 무엇인지 아시는 분 알려주시면 보팅으로 보답하겠습니다.

저의 PC 사용자 이름이 한글인 관계로 steem-python이 설치가 안됩니다. 영문명 계정을 만들어서개발 중인데, 실제로 사용하려고 하니 한글명 계정에서 사용해야 하는군요. 그래서 .exe를 만들어서
실행을 하면 될 것 같아서 작업 중인데, 그냥은 안되네요.

소스코드는 아래 github에 있습니다.
https://github.com/multiwhs/steem-project1

제발 Please Help Me!!

최신 값 읽어오는 방법

node.js로 account 정보를 읽어온 후 html 문서로 보여주는 작업을 완료하였는데, steemd.com에서 보여주는 값과 api.steemit.com에서 읽어오는 값이 틀리네요. api.steemit.com이 값이 더 옛날 값입니다.

api.steemit.com에 있는 값들 update하는 주기를 혹시 아시나요?
그리고 steemd.com에서는 어떤 DB를 읽어오는지 아시는 분 계시나요?

방금 이 글을 올린 이후에는 api.steemit.com도 바로 업데이트가 되네요.
그리고는 api.steemit.com와 steemd.com 의 값이 또 차이가 납니다.

파고들 수록 난관이 많네요.
뭐 이런 재미로 하는 거죠..
답 찾았습니다.

아래 @milionfirst 님의 댓글을 보고 이전에 찾아 놓았던 자료가 떠올라서 봤더니, 아래와 같이 정확하게 쓰여있네요. 아래 내용을 정리하면

최근에 block에 update(보팅,댓글 등등)를 할 때 voting_power를 계산하여 등록
그 후에는 최종 block 시간과 현재 시각 차이를 기준으로 하루 20% 채워지는 기준으로 계산하여 + 한 값을 보여주네요.
물론 그 값이 100을 넘으면 안 되겠지요?

사용자가 아무런 행동을 하지 않으면 block이 변경되지 않는 것이 정상이네요.
쉽게 주워 먹으려고 했더니, 일일이 계산을 해야 하는군요.
보면 볼수록 steemit 디자인 잘 되어 있네요.

Sort:  

첫번째는 모르겠고... 두번째도 모르겠고... 그렇지만 보팅파워를 계산할때 어카운트 정보는 마지막 보팅하고 나서의 정보를 가지고 있다고 합니다. 그러니 어카운트에서 읽어온 값이 실시간으로 재계산된 steemd.com 의 정보보다 과거 정보일 수 밖에 없겠지요. 실시간 보팅파워는 시간함수의 복잡한 계산으로 'regenerated' 된다고 어디선가 본 듯합니다. 자료 출처는 저도 잊어 버려서... 아무튼 수고하십니다^^

찾았어요. 오홍 감사합니다.

Cheer Up!

  • from Clean STEEM activity supporter

오!! 저도 요즘 파이썬 공부중입니다.. (초보,,ㅜㅜ)
언어 사용 실력이 나쁘지 않아 이번에는 파이썬에 도전해보려고 하는중인데 스팀과 연동이 목표입니다.ㅎ
제가 당장 도와줄수는 없지만 앞으로 같이 도움이 많이 되었으면 하네요 ㅎㅎ
팔로워 합니다^^

첫번째 문제는 라이브러리가 같이 패킹 되지 않았거나 하는 문제입니다. steem-python 말고도 다른 라이브러리로 테스트 해 보세요. 아마 같은 에러가 날 겁니다.

어떻게 패킹을 할 수 있나요?

마지막 줄이 안보여서 저랑 같은 에러인지는 모르겠습니다만. 제가 해보니
앞부분은 같은 에러인데, 결국 마지막 몇줄이 문제더군요.

  File "langdetect/utils/messages.py", line 9, in __init__
FileNotFoundError: [Errno 2] No such file or directory: '...생략.../dist/post_email/langdetect/utils/messages.properties'

이 경우 해결방법은

pyinstaller --add-data /usr/local/lib/python3.6/site-packages/langdetect/utils:langdetect/utils -F post_email.py

이렇게 못찾는 파일을 넣어주면 됩니다. 제가 윈도우에선 안해봐서 --add-data 의 항목은 윈도우에 맞게 고치셔야 합니다.
행운을 빕니다. :)

--add-data를 넣었는데 찾지를 못한다고 하네요. 역시 행운이 찾아오지 않는군요.불편하지만 계정 왔다갔다하면서 해야할 듯 합니다. 원도우즈에서 파이썬으로 개발한 후 배포는 어떻게 하나요?

마지막 에러가 저와 같던가요?
--add-data 를 포함한 명령어와 전체 에러로그를 보여주시면 뭔가 알 수 있을 지도요 :)

제가 윈도우를 안써서... 파이썬은 따로 배포는 생각해 본적이 없습니다. 파이썬 윈도우즈 배포는 @soma0sd 님이 상당한 경험이 있을 거예요.

미리 감사합니다.
우선 --add-data 썼을 때 invalid data 나오는 이미지입니다.

-add를 사용하지 않고 exe 만든 후 exe 실행할 때 나오는 에러

오, 이건 저랑은 다른 문제네요. 아마 그 전에 이미 문제가 생긴 것 같습니다. 이건 spec 파일을 수정해서 고쳐야 하는데... 또 다른 에러가 나올 수도 있고.. 어차피 파이썬 라이브러리 폴더도 옮기셨으니 이제 굳이 패키징 안하셔도... 하하하 :O

--add-data 문제는 대략

--add-data C:/MyPrograms/Lib/site-package/langdetect/utils:langdetect/utils

요렇게 넣어주면 될 것 같습니다. Crypto 에러는 다른 문제지만요.

저도 수업때 "이런것도 할 수 있다"정도를 보인게 끝이라서.. 일단 문제를 따라잡아볼께요. 며칠 말미를..

@tradingideas님께서도 연금술 컴퓨팅을 하시는군요!!

ㅎ좋은 표현이십니다. 스팅밋에 붙어있는 시간이 너무 많아서 시간을 좀 줄여볼려고 작업 중이예요. 일단 관심 작가들 글을 좀 쉽게 볼려고요. 이러면 연시술 쯤 되나요?

이래서.. 제가 윈도우를 안 씁니다 ㅜㅜ
나중엔 꼭 맥이나 리눅스로 넘어오세요 ㅜㅜㅜ

전 윈도우가 훨씬 좋습니다. 연말 연휴 때 ubuntu에 steem-python 설치하던 악몽이 떠 오르네요.