首页 > 解决方案 > 我的代码在我的计算机上完美运行,但在服务器上执行时却不行?PYTHON

问题描述

我有一个脚本,可以从 MongoDB 中提取标题、发布日期和链接,并通过电子邮件将其发送给选定的收件人。但是,当我通过 Github 从服务器(使用 Digital Ocean)运行它时,代码确实运行但结果错误。

例子

from pymongo import MongoClient
import datetime
import smtplib
from email.mime.text import MIMEText

client=MongoClient("mongodb+srv://xxxxxxxxx:yoQnE9BsxD8YqpqL@xxxxxxxx-z0q0x.mongodb.net/test?retryWrites=true&w=majority")
db=client.xxxxxx


total=[]
for doc in db.noticias.find().sort("Fecha",-1):
    if doc["Fecha"]>=datetime.datetime.now()+datetime.timedelta(hours=5,minutes=-60):
        del doc["_id"]
        doc["Fecha"]=doc["Fecha"]+datetime.timedelta(hours=-5)
        
        total.append("\n".join(str(x) for x in doc.values()))

total="\n\n".join(total)

if not total:
    pass
else:
    

    s=smtplib.SMTP("smtp.zoho.com",587)
    msg=MIMEText(total)
    sender="xxxx@zohomail.com"
    recipients="xxxx@gmail.com"
    msg["Subject"]="Noticias"
    msg["From"]=sender
    msg["To"]=recipients
    s.starttls()
    s.login("xxxx@zohomail.com","xxxxxxxx")
    s.sendmail(sender,recipients,msg.as_string())

如果最近一小时有来自 MONGODB 集合的消息,我们的想法是发送电子邮件。当我在我的计算机上运行代码时,脚本会正确发送消息。但是,当我通过 Github 连接到 DigitalOcean 时运行代码时,发送的代码不遵守条件。

标签: pythonmongodbgithub

解决方案


感谢各位的回答。我对 python 编码真的很陌生,这是我第一次使用像 DigitalOcean 这样的远程服务器。发生的事情是我在远程服务器上克隆了我的 github 存储库,并认为我从本地计算机对我的存储库所做的每一次新推送都会在远程服务器的目录中看到。所以,当我从服务器执行时,它无法工作,因为当我克隆我的代码时,脚本还没有完成。这是一个新人的错误。无论如何,谢谢你的时间。花了一天时间才意识到这一点。


推荐阅读