Python3.6没有命名的模块。。。在windows Server 2008 R2上

2024-09-25 00:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个小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脚本的行为都是一样的。在


Tags: frompyimportdatetimedateemailsessionresult
2条回答

最后,我通过在服务器上删除并重新安装python解决了这个问题。在

你需要提供更多的回溯。你可能还需要在的目录中发布的内容。我可以让你的代码在我的Windows机器上正常运行。在

有两件事可能是你的错误来源:

  1. init.py中的import语句应该如下所示

    import workers.Worker
    
  2. 可能是你的剧本(运行.py)启动时,默认目录为C:\Windows。如果从快捷方式启动,请确保在属性中正确设置了“开始位置:”目录。您可以让Python告诉您它在哪个目录下工作操作系统getcwd()(即从操作系统模块获取当前工作目录)。试着把这些线加到运行.py(在“导入”之前工人。工人import Worker“)以帮助调试: 导入操作系统 打印(操作系统getcwd()) 这将在控制台中打印当前的工作控制器。

相关问题 更多 >