Я изменил скрипт, закомментировав раздел и добавив несколько операторов печати над ним для целей тестирования, проблема в том, что когда я запускаю скрипт из любого другого каталога, кроме того, в котором он находится, python запускает старую версиюсценарий.Очистка __pycache__
не имела никакого эффекта.
Вот этот скрипт на python:
import discord
import watson
import configparser
import os
from discord.ext.commands import Bot
from getpass import getuser
print("WHY ISN'T THIS BEING CALLED!!")
#print(os.getcwd())
#os.chdir("/home/{}/discordBotStaging".format(getuser()))
#print(os.getcwd())
#if(not os.path.isfile("./config.ini")):
# print("No config file found, make sure you have one in the same directory as this python script\nexiting")
# quit()
config = configparser.ConfigParser()
config.read("./config.ini")
TOKEN = config["DEFAULT"]["DISCORD_KEY"]
BOT_PREFIX = ("!", "$")
client = Bot(command_prefix=BOT_PREFIX)
@client.command(name="memealyze",
description="When uploading image include command \"!memealyze\" | \"!Memealyze\" | \"!MemeAlyze\" | \"!ma\" as a comment",
brief="Neural network put to good use",
aliases=["Memealyze", "MemeAlyze", "ma"],
pass_context=True)
async def GetMemeContents(context):
await client.say("Sending image to the mothership, hold tight.")
if(not context.message.attachments):
await client.say(
"Couldn't find image attachement. Make sure you include \"!memealyze\" or any of it's variants as a comment when submitting an image")
return
imageUrl = str(context.message.attachments[0]["url"])
messageContent = ""
resultDict = watson.ReturnWatsonResults(imageUrl)
for key,val in resultDict.items():
messageContent += "{} : {}%\n".format(key, val)
await client.say("Done, the boys at IBM said they found this:\n" + messageContent)
client.run(TOKEN)
А вот проблема:
yugnut@RyzenBuild:~$ python3 discordBotStaging/main.py
No config file found, make sure you have one in the same directory as this python script
exiting
yugnut@RyzenBuild:~$
yugnut@RyzenBuild:~/discordBotStaging$ python3 main.py
WHY ISN'T THIS BEING CALLED!!
^Cyugnut@RyzenBuild:~/discordBotStaging$
РЕДАКТИРОВАТЬ:
@ Предложения ShadowRanger:
Попробуйте переместить печать над всеми импортами в вашем скрипте.
Это дает многообещающие результаты, я получаювыполнив эту попытку, но сразу после этого я все еще сталкиваюсь с той же проблемой
Вы не можете использовать относительные пути, подобные этому, если файл конфигурации должен находиться в том же каталоге, что и скрипт;Вы должны сделать config.read(os.path.join(os.path.dirname(__file__), 'config.ini'))
Я думаю, что мое невежество показывает: ^), я также изменил это в своем скрипте
После внесения этих изменений вместе с попыткой запуститьскрипт после комментирования моей import configparser
строки я все еще получаю ту же ошибку.