2014-03-31 29 views
0

我正在运行一个python脚本,它可以在OSX上使用Python 2.7.6版本完美运行。然后我使用python 2.6.5在Linux上运行相同的脚本,它给了我下面的错误,行号不匹配,因为我已经减少了脚本的例子。这是一个Python版本问题?Linux上的Python错误 - 版本?

错误:

Traceback (most recent call last): 
    File "Create_MD5.py", line 133, in <module> 
    myApp = CreateMD5('myApp') 
    File "Create_MD5.py", line 35, in __init__ 
    self.sendEmail() 
    File "Create_MD5.py", line 124, in sendEmail 
    server = smtplib.SMTP(self.host) 
    File "/usr/lib64/python2.6/smtplib.py", line 239, in __init__ 
    (code, msg) = self.connect(host, port) 
    File "/usr/lib64/python2.6/smtplib.py", line 295, in connect 
    self.sock = self._get_socket(host, port, self.timeout) 
    File "/usr/lib64/python2.6/smtplib.py", line 273, in _get_socket 
    return socket.create_connection((port, host), timeout) 
    File "/usr/lib64/python2.6/socket.py", line 500, in create_connection 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno -3] Temporary failure in name resolution 

代码示例:

import hashlib 
import threading 
import os 
import os.path 
import sys 
import time 
import datetime 
import smtplib 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 

class CreateMD5(object): 
    def __init__(self, title): 
     self.host = "outlook" 
     directory = "/RAIDS/RAID3" 
     .............. 


    def...... 

    def sendEmail(self): 
     msg = MIMEMultipart() 
     msg['From'] = self.fromaddr 
     msg['To'] = self.toaddr 
     msg['Subject'] = "Some Subject" 
     body = "This is an example" 
     msg.attach(MIMEText(body, 'plain')) 
     server = smtplib.SMTP(self.host) 
     text = msg.as_string() 
     server.sendmail(self.fromaddr, self.toaddr, text) 

myApp = CreateMD5('myApp') 
+0

不确定这是否是问题,但是您是否试图将#!/ usr/bin/python放在文件的开头? –

+0

添加了这一点,并没有什么区别。仍然收到错误。 – speedyrazor

+2

当你这样做时会发生什么:Linux机器上的'ping outlook'? – perreal

回答

1

它是连接问题:[EAI_AGAIN] The name could not be resolved at this time. Future attempts may succeed.

您可以检查错误代码定义为socket.EAI_*常量和你看到-3对应到socket.EAI_AGAIN。同样,告诉你追溯,顺便说一句。

+0

排序,注释掉所有的电子邮件和脚本运行。虽然我有另一个问题。 – speedyrazor

+0

随时问__otherother__问题(最好在单独的问题中保留单独的问题) –

0

你可以尝试在python控制台中运行以下内容,并让我们知道你看到了什么?

import smtplib                     
print smtplib.SMTP(self.host)