2013-09-26 4 views
1

У меня есть сценарий, который работал нормально, но из внезапно я начинаю получать эту ошибку:Python 2.7: глобальное имя 'log' не определен?

File "/home/user/Documents/myscript.py", line 100, in getResults 
    results = (log(output_list[1]) * 30) 
NameError: global name 'log' is not defined 

Сценарий работал нормально с одной и той же линии, но теперь это не так. У меня нет ни малейшего понятия, что здесь произошло?

+4

Вы должны показать весь код 'myscript.py'. Где определяется журнал? – alecxe

+4

@tasty: такого встроенного не существует. –

+0

Как пишет @alecxe, напишите весь сценарий. Вы/кто-то, вероятно, удалили или изменили оператор 'import' бессознательно. – crayzeewulf

ответ

5

Я предполагаю, что вы пытаетесь использовать функцию math.log.

Вы либо потребность:

import math 
... 
results = (math.log(some_string[1]) * 30) 

Или:

from math import log 
... 
results = (log(some_string[1]) * 30) 

Вы должны отсутствовать ваш оператор импорта.

2

Попробуйте добавить import math в начало вашего скрипта.

$ python 
Python 2.7.3 (default, Jan 21 2013, 09:25:42) 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import math 
>>> math.log(10) 
2.302585092994046 
+4

Это не решит проблему; 'from math import log' будет, как и' import math', тогда 'log = math.log'. –

+0

Очень верно. Лучше всего найти конфликт имен, разрешить его, а затем перейти к использованию этого стиля импорта. – tbc

Смежные вопросы