AttributeError: 'Updater' object has no attribute 'dispatcher'

반응형

안녕하세요?

 

텔레그램봇을 다시 설치하거나, 따라하기 하다보면, 잘 안되는경우가 있을 겁니다.

최근에  telegram.ext 라이브러리가 upgrade되면서 Updater 사용법이 많이 변경되었습니다.

 

구글링에서 가장 많은 예시 들이 존재하는 버젼이 python-telegram-bot-13.3 버젼입니다.

20.0버젼에 맞는 예시들이 아직은 거의 없는것 같습니다. 

 

python-telegram-bot-13.3 사용시에는 다음과 같이 사용합니다.

def start(update: Update, _: CallbackContext) -> None:
    user = update.effective_user
    update.message.reply_markdown_v2(
        fr'Hi {user.mention_markdown_v2()}\!',
        reply_markup=ForceReply(selective=True),
    )


def help_command(update: Update, _: CallbackContext) -> None:
    update.message.reply_text('Help!') 

def run_bot(update: Update, _: CallbackContext) -> None:
    replica = update.message.text
    answer = bot(replica)
    update.message.reply_text(answer) 

    print(replica)
    print(answer)
    print()
    
def main() -> None:
    updater = Updater("token")
    dispatcher = updater.dispatcher
    dispatcher.add_handler(CommandHandler("start", start))
    dispatcher.add_handler(CommandHandler("help", help_command))
    dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, run_bot))

    # Initialize bot
    updater.start_polling()

    updater.idle()

main()

 

python-telegram-bot-20.0 에서는 다음과 같이 사용합니다. 많이 틀리죠?

from telegram.ext import *
import keys
    
print('Starting a bot....')
     
async def start_commmand(update, context):
    await update.message.reply_text('Hello! Welcome To Store!')

if __name__ == '__main__':
    application = Application.builder().token(keys.token).build()

    # Commands
    application.add_handler(CommandHandler('start', start_commmand))

    # Run bot
    application.run_polling(1.0)

 

13.3 버젼을 사용하고 싶으시다면 제일 마직막에 13.3버젼으로 python-telegram-bot 을 다시 설치하시면 됩니다.

 

>pip install telegram
> pip uninstall python-telegram-bot telegram -y
>pip install python-telegram-bot
>pip install python-telegram-bot --upgrade
>pip install python-telegram-bot==13.3 # 20.0a0버젼부터는 dispatcher를 더이상 사용불가합니다. 

 

이상입니다.

 

https://stackoverflow.com/questions/74986002/attributeerror-updater-object-has-no-attribute-dispatcher

 

AttributeError: 'Updater' object has no attribute 'dispatcher'

When I run this code: from telegram.ext import * import keys print('Starting a bot....') def start_commmand(update, context): update.message.reply_text('Hello! Welcome To Store!') if

stackoverflow.com

 

반응형

댓글()

Python 3.7에서 torch install

반응형

구글링을 수십번 하면서, 3~4시간 헤메다가 찾은 방법입니다.

python 3.7에서 64bit OS환경이라면 하기 방법을 사용하시길 바랍니다.

>activate py37_64
>pip install torch===1.3.1 torchvision===0.4.2 -f https://download.pytorch.org/whl/torch_stable.html

반응형

댓글()

가상화폐 자동매매 시작 가이드

가상화폐|2022. 3. 27. 11:14
반응형

1. Bithumb 사이트에 회원가입하고, API 신청한다.

  https://www.bithumb.com/api_support/management_api

 

https://www.bithumb.com/api_support/management_api

 

www.bithumb.com

      보안을 위해 API를 통한 KRW출금과 가산자산 출금은 비활성화하기를 권한다.

 

2. API Key와 Secret Key를 생성한다.

   생성된 키는 메모장에 기록하고, 하기의 폴더에 con_key.txt와 sec_key.txt 파일로 저장한다.

반응형

댓글()

빗썸API 자동매매일지 2022.03.24 22:00

카테고리 없음|2022. 3. 24. 22:19
반응형

안녕하세요?

 

자동매매일지를 다시 시작하려고 합니다.

하루하루 느낀점, 개선해야 할 점등까지 적어보도록 하겠습니다.

 

최근 로직을 대폭 개선했습니다.

하기 화면은 투자종목 대상을 분석하는 하면입니다.

세력지수와 바닥지수를 계산해서 종목선택프로그램이 이 기준으로 매수대상 종목을 선정하도록 도와줍니다.

차트에는 D+2예수금과 현재 투자하고 있는종목의 평가금액을 합한 총평가금액을 차트에 같이 표시해 줍니다.

자산 증가추이를 엑셀로 정리안해도 되고 자등으로 차트로 보여주니 정말 편하네요..ㅎㅎ

이렇게 종목별 세력지수와 바닥지수가 계산되면,

실제 매수매도 프로그램에서는 해당지수를 이용해서 매수활동을 합니다.

이 부분이 그동안 개선된 부분같습니다.

이상입니다.

반응형

댓글()

미국주식 자동매매 시작하기-5

AI주식자동매매|2022. 2. 6. 11:00
반응형

 

안녕하세요?

 

요즘 미국 중앙은행(Fed)의 긴축 강도가 높아질것이라는 우려와 '러 우크라' 침공 임박 소식에 급락하고 있습니다.

오늘은 록히드마틴 등 방산株 올랐다는 [뉴욕증시브리핑]이 있었습니다.

 

역시나 저의 美 증시 투자현황도 꼴이 말이 아닙니다. T.T

오늘은 종목분석시간에는 실 거래가 아닌, 매수세와 바닥세를 분석만 하도록 기능을 보완했습니다.

(종목자동매매 시스템과 다시 통합했습니다.)

여기에, ..님께서 미국 ETF도 거래 가능한지 문의가 있어서 해당 ETF도 거래 가능하다는것을 보여드리기 위해서

해당 종목 화면을 캡쳐했습니다. 참조하시기 바랍니다.

 

그리고, 방산업체의 대표주인 록히드마틴 종목을 보니, 역시나 뉴스에 날때는 팔아야 하는가 봅니다.

이미 오를때까지 올랐네요.

그리고, 추가로,

이 미국주식 자동매매는 일정시간이 되면, 자동 실행하고, 자동종료하도록 하기와 같이 설정했습니다.

매일 밤 9시30분에 자동 실행되고, 12시간이 지나면 자동으로 실행은 종료됩니다.

작업스케쥴러의 속성-일반
작업스케쥴러의 속성-트리거

 

작업스케쥴러의 속성-동작

 

작업스케쥴러의 속성-설정

오늘은 여기까지 입니다. 감사합니다.

반응형

댓글()

가상화폐 자동매매 프로그램 Upgrade

가상화폐|2022. 2. 2. 20:55
반응형

간만에 가상화폐 자동매매 관련 글 올립니다.

그동안 공지는 못했지만, 꾸준히 모니터링 하면서, 기능 및 로직을 Upgrade해왔습니다.

 

공개할 버젼은 미국주식버젼과 동일하게 업그레이드한 매수세력과 바닥지수를 활용한

매수추천종목 관리 프로그램 버젼입니다.

일명 "세력지수"와 "바닥지수"를 계산해 내는 방식입니다.

1. 세력지수

일봉차트에서 30일 이내 가장 최근의 일일 거래량과 5일이평, 10일이평, 20일이평 거래량을 비교하여 일 거래량이 이평 거래량을 초과하는 시점에 장대양봉이 형성된 날부터 거래량을 +, -하여 해당 거래량을 세력지수로 표현합니다.

2. 바닥지수

위 화면의 일봉차트(가운데 차트)에서 현재가가 최고가선과 최저가선이 얼마나 최저가선에 가까운지, 그리고, 저항선과 지지선에서 얼마나 지지선에 가까운지를 감안하여 바닥지수로 표현합니다.

 

위의 미국주식 투자종목찾기 프로그램은 세력지수와 바닥지수만을 종목별로 계속 재계산하여 

종목별 세력지수 바닥지수 DB에 저장하는 역할만 합니다.

 

이렇게 DB에 저장된 세력지수와 바닥지수를 다음의 프로그램에서는 

지정된 값의 범위에 해당되는 종목만을 매수추천대상 목록으로 띄웁니다.

이 매수방법이 잘 될거라 믿고.. 기다려 보겠습니다. ㅎㅎ

 

이상입니다.

반응형

댓글()

미국주식 자동매매 시작하기-4

AI주식자동매매|2022. 2. 2. 20:34
반응형

안녕하세요?

 

업그레이드 된 미국주식 자동매매 프로그램을 어제부터 시작했습니다.

업그레이드 한 방법은 대상 종목을 찾는 프로그램과 주식자동매매 프로그램을 

분리시켰습니다.

 

대상종목을 찾는방법은 최근거래량이 급증한 종목이면서, 가격이 바닥에 가깝다가 판단된

종목만을 선별해서 매수대상 종목으로 하도록 했습니다.

일명 "세력지수"와 "바닥지수"를 계산해 내는 방식입니다.

1. 세력지수

일봉차트에서 30일 이내 가장 최근의 일일 거래량과 5일이평, 10일이평, 20일이평 거래량을 비교하여 일 거래량이 이평 거래량을 초과하는 시점에 장대양봉이 형성된 날부터 거래량을 +, -하여 해당 거래량을 세력지수로 표현합니다.

2. 바닥지수

위 화면의 일봉차트(가운데 차트)에서 현재가가 최고가선과 최저가선이 얼마나 최저가선에 가까운지, 그리고, 저항선과 지지선에서 얼마나 지지선에 가까운지를 감안하여 바닥지수로 표현합니다.

 

위의 미국주식 투자종목찾기 프로그램은 세력지수와 바닥지수만을 종목별로 계속 재계산하여 

종목별 세력지수 바닥지수 DB에 저장하는 역할만 합니다.

 

이렇게 DB에 저장된 세력지수와 바닥지수를 다음의 프로그램에서는 

지정된 값의 범위에 해당되는 종목만을 매수추천대상 목록으로 띄웁니다.

위에서 설정항목으로 보여지는 세력지수가 0보다 크고, 바닥지수는 300보다 큰 종목만을 매수추천대상으로 불러오는

조건을 보실 수 있습니다.

 

이상입니다.

반응형

댓글()

module 'telegram' has no attribute 'Bot'

AI주식자동매매|2022. 1. 16. 21:37
반응형

다음과 같은 에러가 계속 발생할때...

 

AttributeError: module 'telegram' has no attribute 'Bot'

 

다음과 같이 해 주면 됩니다.

 

pip uninstall python-telegram-bot telegram

pip install python-telegram-bot

반응형

댓글()