質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

7670閲覧

pythonでdiscordのbotを作りたいが躓いています。

banjo

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2018/07/14 08:26

編集2018/07/15 06:04

前提・実現したいこと

以下のサイトのコードを使ってdiscordの投票botを作成したいです。
初心者ですがよろしくお願いします。
https://foolean.net/p/1688

発生している問題・エラーメッセージ

C:\Users\xxx\Desktop\bot>yyy.py Traceback (most recent call last): File "C:\Users\xxx\Desktop\bot\yyy.py", line 3, in <module> File "C:\Users\xxx\AppData\Local\Programs\Python\Python37\lib\site-packag es\discord\__init__.py", line 20, in <module> from .client import Client, AppInfo, ChannelPermissions File "C:\Users\xxx\AppData\Local\Programs\Python\Python37\lib\site-packag es\discord\client.py", line 38, in <module> from .state import ConnectionState File "C:\Users\xxx\AppData\Local\Programs\Python\Python37\lib\site-packag es\discord\state.py", line 36, in <module> from . import utils, compat File "C:\Users\xxx\AppData\Local\Programs\Python\Python37\lib\site-packag es\discord\compat.py", line 32 create_task = asyncio.async ^ SyntaxError: invalid syntax

該当のソースコード

Python

1#coding: utf-8 2 3import discord 4client = discord.Client() 5 6TOKEN = "ご自身のトーーーークン" 7 8# 各ユーザのリアクション(スタンプ)を保存して置くためのdict 9from collections import defaultdict 10user_reaction_dic = defaultdict(dict) 11 12# リアクションが追加された時の処理 13@client.event 14async def on_reaction_add(reaction, user): 15 16 # リアクションが追加されたメッセージの取得 17 message = reaction.message 18 19 # この投稿に対してこれまでにリアクションしたかを判定 20 if message.id not in user_reaction_dic[user.id]: 21 # 新しく登録された絵文字なので情報を保存しておく 22 user_reaction_dic[user.id][message.id] = reaction.emoji 23 else: 24 # 前回の絵文字を削除して更新する 25 await client.remove_reaction(message, user_reaction_dic[user.id][message.id], user) 26 user_reaction_dic[user.id][message.id] = reaction.emoji 27 28# リアクションが削除された時の処理 29@client.event 30async def on_reaction_remove(reaction, user): 31 32 # リアクションが追加されたメッセージの取得 33 message = reaction.message 34 35 # 保存してあるリアクション情報と一致したらそれを削除しておく 36 if user_reaction_dic[user.id][message.id] == reaction.emoji: 37 del user_reaction_dic[user.id][message.id] 38 39# BOTを実行 40client.run(TOKEN)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

回答いただけたお二方、ありがとうございます。Pythonのバージョンを落として再度実行したところ、エラーメッセージがかなり短くなりました。

Python

1Traceback (most recent call last): 2 File "C:\Users\xxx\Desktop\bot\yyy.py", line 3, in <module> 3ModuleNotFoundError: No module named 'discord'

discord.pyはインストールしてありますがどう使えばよいかわかりません。無知ですみませんが教えていただけると助かります。

[追記]
コマンドプロンプトからpip install -U discord.pyを入力したところ

Traceback (most recent call last): File "C:\Users\xxxi\Desktop\Python_study\yyy.py", line 40, in <module> File "C:\Develop\Python3.6.4\lib\site-packages\discord\client.py", line 519, i n run self.loop.run_until_complete(self.start(*args, **kwargs)) File "C:\Develop\Python3.6.4\lib\asyncio\base_events.py", line 467, in run_unt il_complete return future.result() File "C:\Develop\Python3.6.4\lib\site-packages\discord\client.py", line 490, i n start yield from self.login(*args, **kwargs) File "C:\Develop\Python3.6.4\lib\site-packages\discord\client.py", line 416, i n login yield from getattr(self, '_login_' + str(n))(*args, **kwargs) File "C:\Develop\Python3.6.4\lib\site-packages\discord\client.py", line 346, i n _login_1 data = yield from self.http.static_login(token, bot=is_bot) File "C:\Develop\Python3.6.4\lib\site-packages\discord\http.py", line 258, in static_login data = yield from self.request(Route('GET', '/users/@me')) File "C:\Develop\Python3.6.4\lib\site-packages\discord\http.py", line 121, in request headers['Authorization'] = 'Bot ' + self.token if self.bot_token else self.t oken TypeError: must be str, not int Unclosed client session client_session: <aiohttp.client.ClientSession object at 0x000000000387FF28>

というメッセージが出てきました。助けてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Python3.7以降、asyncが新たに予約語に指定されました。

Python

1>>> # 3.6 2>>> async = 42

Python

1>>> # 3.7 2>>> async = 42 3 File "<stdin>", line 1 4 async = 42 5 ^ 6SyntaxError: invalid syntax

Pythonのバージョンを落とすと解消するように思います。

質問編集を受けて

ModuleNotFoundError: No module named 'discord'

discordモジュールは具体的にどのように導入されたのでしょうか。

投稿2018/07/14 08:54

編集2018/07/14 15:26
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

使用しているライブラリのインストール手順を質問文に追記してくださいな。

Python

1 create_task = asyncio.async

Cant Import in Python 3.7.0b3

リンク先に記載がありますが、対策方法は2案。
1,Pythonをアンインストールしてバージョンを3.7から下げる
2,masterブランチは修正済みなため、masterブランチに対して、pip installする。

◇参考情報
tweepyが実行出来ません


ModuleNotFoundError: No module named 'discord'

Pythonのバージョンを落とした後にdiscord.pyモジュールの再インストールを行っていないだけでは?
質問のリンク(https://foolean.net/p/1688)から辿れる意外と簡単だったからDiscordのBOTを作ってみるよを参考に再インストールを行ってください。


python3 -m pip install -U discord.py

一度discord.pyをインストールしたのではないのですか?
最初のエラーメッセージはdiscord.pyがインストール済みな環境でしか発生しないエラーメッセージなのですが…

結論をいうとインタラクティブシェルではなく、コマンドプロンプトより入力するコマンドは以下です。

pip install -U discord.py

コマンドプロンプトからpip install -U discord.pyを入力したところ

File "C:\Users\xxxi\Desktop\Python_study\yyy.py", line 40, in <module>

pipインストール後に、yyy.pyを実行したように見受けられますが。
1, pip install -U discord.pyを実行時にエラーが発生
2, pipインストール後に、yyy.pyを実行時にエラーが発生

どちらでしょうか。手順は正確に書いて頂けると嬉しいのですが。

投稿2018/07/14 08:52

編集2018/07/15 07:55
umyu

総合スコア5846

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

banjo

2018/07/15 05:24

pythonのインタラクティブシェルで ``` python3 -m pip install -U discord.py ``` と打ち込んだところ ``` >>> python3 -m pip install -U discord.py File "<stdin>", line 1 python3 -m pip install -U discord.py ``` とエラーメッセージが出ます。どういう意味なのでしょうか?
banjo

2018/07/16 14:20

teratailに初めて来たものの、流石に勉強不足が過ぎたと反省しています。しっかり基礎を勉強してからまた参ります。よろしくお願いします。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問