Ошибки трассировки на скрипте python внутри ошибки discord \ client.py? - PullRequest
0 голосов
/ 03 февраля 2020

Я не могу выполнить любой код python в коде Visual Studio для правильного разногласия. Сообщение об ошибке является постоянным, и независимо от того, какой метод я использую для доступа к файлу, ошибка продолжает возвращаться. код выглядит следующим образом:

def read_token():
    path = '/path/used/to.txt'
    with open(path, "r") as f:
        lines = f.read()
        return lines[0].strip()

token = read_token()
print(token)

try:
    bot.run(token)
except discord.errors.LoginFailure as e:
    print('login failed, ERROR 401 unauthorized')

при этом выводится это на терминал:

<function read_token at 0x7f2d0edba268>
login failed, ERROR 401 unauthorized

Ошибка дает эту информацию:

  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/http.py", line 256, in static_login
    data = await self.request(Route('GET', '/users/@me'))
  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/http.py", line 220, in request
    raise HTTPException(r, data)
discord.errors.HTTPException: 401 UNAUTHORIZED (error code: 0): 401: Unauthorized

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/falwaeth/BotDev/bot.py", line 32, in <module>
    bot.run(f'{token}')
  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/client.py", line 640, in run
    return future.result()
  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/client.py", line 621, in runner
    await self.start(*args, **kwargs)
  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/client.py", line 584, in start
    await self.login(*args, bot=bot)
  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/client.py", line 442, in login
    await self.http.static_login(token.strip(), bot=bot)
  File "/home/falwaeth/.local/lib/python3.6/site-packages/discord/http.py", line 260, in static_login
    raise LoginFailure('Improper token has been passed.') from exc
discord.errors.LoginFailure: Improper token has been passed.

Что я не понимаю, это неправильный токен. Если я изменю bot.run (), чтобы в нем был настоящий токен, он будет работать. Разрешение файла .txt установлено, чтобы его могли прочитать все. Любые идеи?

Bot.run () будет работать, только если токен находится внутри, я не думаю, что я должен был читать из файла .txt в python. Я изменил некоторые вещи в этом рабочем каталоге, теперь он работает python3 .7.5. При вводе этого кода я обнаружил еще одну проблему:

    path = '/path/used/to.txt'
    with open(path,'r') as f:  
          lines = f.readlines()
          return lines[0].strip()

token = read_token
bot.run(token)

выдаёт мне это как ошибку сейчас:

  File "/home/falwaeth/BotDev/welcomeBot.py", line 31, in <module>
    bot.run(token)
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 640, in run
    return future.result()
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 621, in runner
    await self.start(*args, **kwargs)
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 584, in start
    await self.login(*args, bot=bot)
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 442, in login
    await self.http.static_login(token.strip(), bot=bot)
AttributeError: 'function' object has no attribute 'strip'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/home/falwaeth/BotDev/welcomeBot.py", line 31, in <module>
    bot.run(token)
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 640, in run
    return future.result()
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 621, in runner
    await self.start(*args, **kwargs)
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 584, in start
    await self.login(*args, bot=bot)
  File "/home/falwaeth/.local/lib/python3.7/site-packages/discord/client.py", line 442, in login
    await self.http.static_login(token.strip(), bot=bot)
AttributeError: 'function' object has no attribute 'strip'

есть идеи почему?

1 Ответ

0 голосов
/ 04 февраля 2020

f.read() вернет содержимое файла в виде строки, поэтому lines[0].strip() будет первым символом этого файла. Я подозреваю, что вы хотите это вместо этого:

path = '/path/used/to.txt'
with open(path, "r") as f:
    lines = f.readlines()
    return lines[0].strip()
...