Telethon: OperationalError: database is locked

后端 未结 3 1674
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-16 18:13

Apologies if it is a silly question.

I am trying telethon for the first time and it fails to synchronize with my telegram API.

I get an IP address when I ty

相关标签:
3条回答
  • 2021-01-16 18:23

    To solve the infamous

    OperationalError: database is locked

    error caused by sqllite3, one solution is to find the <SESSION_NAME>.session file created the first time you ran the code and delete it. Telethon puts those files in the same folder as your Python code or Jupyter Notebook. Or alternatively, you could use Python to get rid of the file automatically:

    import os
    import sys
    os.chdir(sys.path[0])
    
    if f"{SESSION_NAME}.session" in os.listdir():
        os.remove(f"{SESSION_NAME}.session")
    

    assuming you are using the SESSION_NAME string variable to store the session name parameter of the TelegramClient() function.

    0 讨论(0)
  • 2021-01-16 18:26

    You have 2 problems here, first problem is related to authentication i guess, i will talk about database lock problem :

    Session name that you have passed is already in use or active hence locked.

    It becomes session file name if you use string as a parameter like here you have passed "name", this is one way to create a session.

    other wise you can use telethon.sessions.abstract.Session object and pass it as parameter , this is second way.

    And third way, you can simply pass None.

    If it’s None, the session will not be saved, and you should call log_out() when you’re done.

    client =  TelegramClient(None, api_id, api_hash)
    

    Hope this helps.

    0 讨论(0)
  • 2021-01-16 18:41

    Referring to the Telethon documentation, The database will be locked if you don't close it properly.

    You are using the same session file from many TelegramClient's at once.

    First

    In [9] client.start()
    

    TelegramClient started

    Second

    In [13] client.connect()
    

    TelegramClient's already active

    This also causes database is locked error. More info:

    0 讨论(0)
提交回复
热议问题