我编写了一个小python脚本来执行基本任务。在我本地的机器上一切正常。但是,当我在WindowsServer2008R2上运行时,我通过执行入口点得到了这个错误运行.py
回溯(最近一次呼叫):
“文件”运行.py“,第1行,in
导入工人
Python3.6没有名为workers的模块
我真的不明白我做错了什么,一切似乎都很正常。在
这是我的文件夹结构
db_utils
entity
files_utils
workers
__pycache__
__init__.py
Worker.py
run.py
代码运行.py是
^{pr2}$密码呢工人.py是
from db_utils.DBManager import SessionFactory
import datetime
from datetime import datetime
from entity.Email import Email
from pushs.Emailer import Emailer
class Worker():
_DATE_FORMAT = '%%Y-%%m-%%d'
_SIMPLE_DATE_FORMAT = '%Y-%m-%d'
def getUnsentEmail(self):
""" Cette fonction retourne la liste des emails qui n'ont pas encore été envoyés"""
sessionFactory = SessionFactory()
session = sessionFactory.Session()
emails = []
connection = sessionFactory.getConnection()
query = "select * from post_email where statut = 'PENDING' "
result = connection.execute(query)
for row in result:
tmpElt = Email(row)
emails.append(tmpElt)
#à ce niveau on a tous les mails qui n'ont pas encore étés envoyés
#
session.close()
return emails
def sendEmails(self):
emails = self.getUnsentEmail()
sessionFactory = SessionFactory()
session = sessionFactory.Session()
connection = sessionFactory.getConnection()
for email in emails:
emailer = Emailer()
result = emailer.sendEmail(email)
#si le résultat est False le mail n'a pas été envoyé
if result.get("result") is False:
currentDateTime = datetime.today().strftime('%Y-%m-%d %H:%M:%S')
print(currentDateTime)
query = "update emails set statut = 'PENDING', last_execution_date = str_to_date('"+currentDateTime+"', '%%Y-%%m-%%d %%H:%%i:%%s'), last_execution_message = '"+result.get('message')+"' ,last_execution_result = 'NOK' where id = "+str(email.id)
connection.execute(query)
else:
currentDateTime = datetime.today().strftime('%Y-%m-%d %H:%M:%S')
print(currentDateTime)
query = "update emails set statut = 'DONE', last_execution_date = str_to_date('"+currentDateTime+"', '%%Y-%%m-%%d %%H:%%i:%%s'), last_execution_message = '"+result.get('message')+"' ,last_execution_result = 'OK' where id = "+str(email.id)
connection.execute(query)
session.close()
Il还发现问题不仅与这个应用程序有关,而且我在这个服务器上的所有python脚本的行为都是一样的。在
最后,我通过在服务器上删除并重新安装python解决了这个问题。在
你需要提供更多的回溯。你可能还需要在的目录中发布的内容。我可以让你的代码在我的Windows机器上正常运行。在
有两件事可能是你的错误来源:
在init.py中的import语句应该如下所示
可能是你的剧本(运行.py)启动时,默认目录为C:\Windows。如果从快捷方式启动,请确保在属性中正确设置了“开始位置:”目录。您可以让Python告诉您它在哪个目录下工作操作系统getcwd()(即从操作系统模块获取当前工作目录)。试着把这些线加到运行.py(在“导入”之前工人。工人import Worker“)以帮助调试: 导入操作系统 打印(操作系统getcwd()) 这将在控制台中打印当前的工作控制器。
相关问题 更多 >
编程相关推荐