У меня возникла проблема с проектом, над которым я работаю.Я нашел, где в коде происходит эта проблема, и поместил ее в изолированную простую среду, и ошибка не исчезла.
Вот код:
def parse(input_var):
input_var = input_var.split("[METHOD]")
if(len(input_var)>1):
input_var[0] = input_var[0].replace("using ","exec(parse(")
input_var[0] = input_var[0].replace(";","))")
input_var = input_var[0]+input_var[1]
else:
input_var=input_var[0]
exec(input_var)
foo="""
using bar;
[METHOD]
print('Passed foo!')
"""
bar = """
print('Passed bar!')
"""
parse(foo)
А вот результат выполнения кода:
Passed bar!
Traceback (most recent call last):
File "python", line 22, in <module>
File "python", line 9, in parse
File "<string>", line 2, in <module>
TypeError: exec() arg 1 must be a string, bytes or code object
Часть кода "bar" вызывает проблему,хотя это явно строкаЭта вещь настолько отвратительна в том, что она никогда не запускает вторую половину кода «foo», который в моей другой программе, использующей этот код, является своего рода необходимым.