Как использовать переменные среды в коде моего бота discord

#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