python - 我的代码在我的计算机上完美运行,但在服务器上执行时却不行?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 时运行代码时,发送的代码不遵守条件。
解决方案
感谢各位的回答。我对 python 编码真的很陌生,这是我第一次使用像 DigitalOcean 这样的远程服务器。发生的事情是我在远程服务器上克隆了我的 github 存储库,并认为我从本地计算机对我的存储库所做的每一次新推送都会在远程服务器的目录中看到。所以,当我从服务器执行时,它无法工作,因为当我克隆我的代码时,脚本还没有完成。这是一个新人的错误。无论如何,谢谢你的时间。花了一天时间才意识到这一点。
推荐阅读
- node.js - 如何使用 Wget 发送 GET 请求并将其输出到屏幕上
- java - Java:JPA Spring 反向 OneToOne 关系
- vb.net - VB.Net Windows 窗体数据绑定
- json - 字符串 json 文件中的星号缺失,赛普拉斯
- reactjs - 如何在减速器中使用动作?
- amazon-web-services - AWS ClientVPN 的自定义主机名?
- laravel - 如何使用 nova-menu-builder 在 Laravel Nova 中创建我的第一个菜单
- registry - EmEditor 自动部署所有设置
- reactjs - 如何在 React js 的材质 UI 选择选项中访问自定义目标属性
- android - RecyclerView 使用 JSON 进行无休止的滚动