[개발이야기#027] 내가 해보고 싶은 것 - 엑셀파일을 이용해서 다중 이체 해보기 - 리눅스 개발 환경 수정
안녕하세요 가야태자 @talkit 입니다.
https://steemit.com/kr/@talkit/026-postingcuration
소스코드는 위 페이지에 있는 프로그램을 사용하시면 됩니다.
@yoghurty 요거트 님의 질문에 대한 답변 성격으로 작성 되었습니다. ^^
우선 요거트님이 만난 오류는 다음 명령을 수행 했을 때 입니다.
pip install pandas openpyxl steem
위와 같은 오류가 난다고 말씀 하셨습니다.
저기 보시면 gcc cc 라는 프로그램이 리눅스용 C 컴파일러 입니다. ^^
이건 바로 컴파일러가 없구나 하고 답변 드렸습니다.
리눅스가 우분투라면
sudo apt install build-essential git wget cmake
위와 같이 설치 하시면 됩니다.
저는 습관적으로 리눅스 깔면 하는게 저거라서 생략 했었는데 ^^
다른 분들은 필요할 것 같습니다.
그리고, 다음 질문은
python을 수행 했을때의 오류 입니다.
위 오류는 암호화 모듈이 설치 되어 있지 않거나, 잘못 설치 되었을 때 입니다.
제가 pip로 설치하라고 말씀 드린 것 중에 암호화 모듈이 없네요 T.T
pip uninstall pycryptodome
pip install pycryptodome
저는 윗줄을 수행 했을때 설치된게 없다고 놔왔습니다 T.T 아차 ^^
암호화 라이버래리를 설치하고 하시면 잘 됩니다.
(steemit) user@user-VirtualBox:~$ python
Python 3.12.5 | packaged by Anaconda, Inc. | (main, Sep 12 2024, 18:27:27) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from steem import Steem
>>>
저도 우분투에서 동일하게 작업해 보았습니다. ^^
잘 됩니다.
리눅스 개발 환경 정리
전체 소스
import pandas as pd
from steem import Steem
from steem.transactionbuilder import TransactionBuilder
from steembase import operations
def send_steem_from_excel(file_path, steem_username, steem_private_key):
# 엑셀 파일 로드
df = pd.read_excel(file_path)
# Steem 인스턴스 생성
steem = Steem(nodes=["https://api.steemit.com"], keys=[steem_private_key])
# 각 행에 대하여 스팀 전송
for index, row in df.iterrows():
account = row['계정명']
amount = row['전송금액']
memo = row['메모']
amount_str = f"{amount:.3f} STEEM" # 3자리 소수로 금액 포맷
# Transaction 생성
tb = TransactionBuilder()
tb.appendOps(operations.Transfer(
**{
"from": steem_username,
"to": account,
"amount": amount_str,
"memo": memo
}
))
tb.appendSigner(steem_username, 'active')
tb.sign()
tb.broadcast()
print(f"Transferred {amount_str} STEEM to {account} with memo: {memo}")
if __name__ == '__main__':
# 스팀 계정과 개인 액티브 키 설정
username = 'your_steem_username'
private_key = 'your_private_active_key'
# 엑셀 파일 경로
excel_path = 'path_to_your_excel_file.xlsx'
# 함수 실행
send_steem_from_excel(excel_path, username, private_key)
엑셀파일 준비
계정명 | 전송금액 | 메모 |
---|---|---|
talkit | 1 | 프로그램 만들어 주셔서 감사합니다. |
설치 패키지
우분투 리눅스
sudo apt install build-essential git wget cmake
RHEL 계열 리눅스 / RHEL, CentOS, Rocky Linux, etc
sudo dnf groupinstall "Development Tools" -y
sudo dnf install -y epel-release
sudo dnf install -y wget curl git vim
리눅스 계열에서는 위와 같이 설치 하시면 됩니다.
파이썬 환경 준비하기
아나콘다 설치 및 아나 콘다 환경 설정
https://steemit.com/blog/@talkit/015-linux-anaconda-python
위 글을 참조하시면 됩니다.
위 글에 나와 있는대로 하셨으면
conda create -n steemit python=3.12
conda activate steemit
파이썬 라이버러리 설치
pip install pandas openpyxl steem
pip install pycryptodome
프로그램 구동
(steemit) user@user-VirtualBox:~$
리눅스 상에 위아 같은 프롬프트 상태일때
mkdir steemit
cd steemit
steemit 폴더를 만들고 위 폴더에 들어가서
vi send_steem_users_from_excel.py
또는
nano send_steem_users_from_excel.py
gedit send_steem_users_from_excel.py
리눅스에서 편안한 편집기로 ^^ 전체소스를 복사하셔서 저장 합니다.
프로그램 실행
python send_steem_users_from_excel.py
위와 같이 실행하시면 됩니다.
음 여기서 조금 걱정 되는 것은 꺼꾸로 리눅스에서 엑셀을 어떻게 준비할 것인가네요
엑셀파일은 윈도우즈나 맥에서 만들어서 업로드 한다(?)
오픈오피스를 설치하고, xlsx로 저장한다
정도가 되겠습니다.
감사합니다.
Posted through the ECblog app (https://blog.etain.club)
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
따라하다 보니 막히는 부분이 있었는데~ 이렇게 잘 설명해 주셔서 감사합니다!
다시한번 잘 따라해 보겠습니다~ ^^ 👍👍👍
알려주신대로 암호화 모듈 설치했더니 Steem 잘 불러와 집니다. 고맙습니다! ^^
그래서, 기분좋게
send_steem_users_from_excel.py 를 실행시켰는데요~
에궁... 이런 화면이 나타나네요. ㅠㅠ
혹시 해결책이 있을까요?
제가 이쪽으로 지식이 짧다 보니 계속 귀찮게 해드리는 것 같아 죄송합니다. 시간이 많이 걸리시거나 답변이 곤란하시면 패스하셔도 좋습니다!
늘 감사드립니다! ^^
리눅스에서 저도 저렇게 오류가 나옵니다. T.T
해당 코드로는 안되서 내일 새벽에 수정 된 코드를 하나 만들어서 발행 하겠습니다.
수정 된 코드는 리눅스에서도 잘 됩니다. ^^
에공... 가야태자님도 리눅스에서는 같은 오류가 나는군요.
그래도, 리눅스에서 돌아가는 코드를 찾으셨다니~ 다행입니다!
알려주시면 그 코드로 다시한번 해보겠습니다! 고맙습니다~ ^^