3

今日Pythonを始めたばかりなので、ひどいことを覚えておいてください。

こんにちは、私は Discord のボットをプログラミングしていますが、実行すると問題が発生します。オンラインで取得しようとしていますが、同じエラーが発生しています。エラーがどこから来ているのかわかりません。誰か助けてくれませんか?

これまでの私のコードは次のとおりです。

import discord

from discord.ext.commands import bot

from discord.ext import commands

import asyncio

import time

Client = discord.Client()

client = commands.Bot(command_prefix = "~")

@client.event
async def on_ready():

    print("I'm up on some BOOF!" + client.user.id)
    print("I am the" + client.user.name)

@client.event
async def on_message(message):

    if message.content == "Boof":
        await client.send_message(message.channel, ":b:")


client.run("<redacted>")

私が得ているエラー:

Ignoring exception in on_ready
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/discord/client.py", line 307, in _run_event
    yield from getattr(self, event)(*args, **kwargs)
  File "/Users/johnathanhelsel/Documents/Boof Bot/BoofBot.py", line 13, in on_ready
    print("I am the" + client.user.name)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/run.py", line 362, in write
    return self.shell.write(s, self.tags)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/rpc.py", line 604, in __call__
    value = self.sockio.remotecall(self.oid, self.name, args, kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/rpc.py", line 216, in remotecall
    return self.asyncreturn(seq)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/rpc.py", line 247, in asyncreturn
    return self.decoderesponse(response)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/rpc.py", line 267, in decoderesponse
    raise what
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 8-8: Non-BMP character not supported in Tk

私は絶対に立ち往生しています!投稿されたすべてのソリューションを試しましたが、何も機能しませんでした。できれば助けてください!

PS、私はすでにトークンを変更しました。試してはいけません。

ありがとう - ジョナサン

4

2 に答える 2

1

問題は、IDLE エディター内でコードを実行しようとしていることです。IDLE エディタは UCS-2 エンコーディングを使用するため、奇妙な Unicode 文字や絵文字を使用してユーザー名の文字列を印刷しようとすると、IDLE ウィンドウはそれを表示できません。

文字列を使用してデバッグすることをお勧めしascii()ます。これにより、実際のコードポイントの代わりに Unicode の Python 表現が出力されます (宛先ウィンドウによっては出力できません)。

print(ascii("I am the" + client.user.name))
于 2018-07-03T20:54:38.827 に答える