Привет, я работал над новым скриптом python сегодня, и я столкнулся с этой ошибкой. Я немного запутался в этом, а также стал новым для сценариев. Я не знаю, как определить этот код. Любая помощь будет замечательной. СпасибоRaspberry Pi Python String not Defined
Ошибка
File "newipemail.py", line 25, in <module>
text = 'The IP address is: %s' % inet_string
NameError: name 'inet_string' is not defined
Script
#!/usr/bin/python
import subprocess
import smtplib
import string
import time
FIXED_IP = '10.10.2.10'
ipaddr_string = 'ip -4 addr > ~/current_ip.txt'
subprocess.call(ipaddr_string, shell=True)
ip_file = file('current_ip.txt', 'r')
for line in ip_file:
if 'eth0:' in line:
inet_line = ip_file.next()
_time = time.asctime()
inet_string = inet_line[9:(inet_line.index('/'))]
if inet_string != FIXED_IP:
print 'Found eth0: %s' % inet_string
SUBJECT = 'IP Address from Raspberry Pi at: %s' % time.asctime()
TO = '[email protected]'
FROM = '[email protected]'
text = 'The IP address is: %s' % inet_string
BODY = string.join((
'From: %s' % FROM,
'To: %s' % TO,
'Subject: %s' % SUBJECT,'',text), '\r\n')
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login('email.server.com', 'password')
server.sendmail(FROM, [TO], BODY)
server.quit()
ip_file.close()
Вы уверены, что у вас есть «eth0:» в вашем файле current_ip.txt? – Ernst
Переменная 'inet_string' определяется только в том случае, если вы нашли * eth0: * в своем файле. Ошибка указывает на то, что переменная не определена, что означает, что файл, вероятно, не содержит * eth0: * – bvidal
после строки 'inet_line = ip_file.next()', проверьте, что значение inet_line имеет 'print (inet_line) '. Это даст вам понять, почему 'inet_string' не определен – joaquin