#python #operating-system #environment-variables #discord.py
Вопрос:
Приведенный ниже код работает правильно, однако я хочу сохранить идентификатор сервера и идентификатор мода в качестве переменных среды. Когда я изменяю команду на следующую, я получаю ошибки, в которых говорится, что у объекта «Нет типа» нет атрибута «get_channel».
import discord import os @client.event #client event async def on_member_remove(member): print("Recognized that member left") guild = client.get_guild(14312441343214)#Server ID channel = guild.get_channel(12123134134134)#Mod ID await channel.send('Hello ' member.name ' has left the server') #after changes does not work @client.event async def on_member_remove(member): print("Recognized that member left") guild = client.get_guild(os.environ.get("SERVERID"))#Server ID channel = guild.get_channel(os.environ.get("MODID"))#Mod ID await channel.send('Hello ' member.name ' has left the server')
Когда print(os.environ.get("SERVERID"))
я получаю правильное значение, я не уверен, что происходит.
Ответ №1:
Переменные среды всегда возвращаются в виде строк, однако идентификаторы в discord.py
являются целыми числами, просто приведите их:
guild = client.get_guild(int(os.environ.get("SERVERID"))) # Server ID channel = guild.get_channel(int(os.environ.get("MODID"))) # Mod ID