【问题标题】:Server won't run this part of Python code服务器不会运行这部分 Python 代码
【发布时间】:2022-02-03 12:54:06
【问题描述】:

我们有一个用于 python 脚本的服务器,其中已经有很多脚本在运行,但是由于某种原因,一个代码无法运行,这是因为这部分:

def getData(ico):
    url = "https://www.mojedatovaschranka.cz/sds/ws/call"

    headers = {'Content-Type':'application/xml'}

    data = """
            <GetInfoRequest xmlns="http://seznam.gov.cz/ovm/ws/v1">
                <Ico>{}</Ico>
            </GetInfoRequest>
    """.format(ico)

    response = requests.post(url, headers=headers, data=data)

    #print(response.status_code)
    #print(response.text)

    data = xmltodict.parse(response.content)
    #print(data)
    return data

对于 它是所有法律主题的一些数据的官方 api,并不是很重要。 我们无法弄清楚,这部分有什么问题。

API调用还有其他代码,所以没有问题,服务器无法发送。

我们还安装了最新的 python 7.3.1。

所有库都被其他脚本安装和使用。

这是我们收到的唯一消息:任务计划程序成功完成任务“\Python\API_Databox”,实例“{0b448401-dedd-4cbc-9200-8addd409dfcf}”,操作“C:\Windows\SYSTEM32\ cmd.exe”,返回码为 2147942401。

它在我的电脑上也能正常运行。

所以我的问题是,有人知道什么可以解决这个问题,或者为什么服务器不能运行这个特定的代码吗?其他类似的代码运行得很好。

【问题讨论】:

  • 如果getData 引发异常,调用代码会做什么?您是否正确处理和记录异常?
  • @Thomas 它只会崩溃
  • Also we have newest python 7.3.1 installed. Python 的most recent version 是 3.10 版。您确定您的版本号正确吗?

标签: python server python-requests


【解决方案1】:

也许这是一个很长的镜头,但是当我尝试以另一个用户身份使用任务调度程序执行一个简单的 .bat 文件时,我收到了确切的错误消息......

脚本调用了带有一些选项的 .exe。

它手动启动很好,但任务失败并失败。在玩弄了任务计划程序中的程序、参数和开始字段后,我将 .bat 移到了我试图运行任务的用户的其他文档文件夹中。尝试使用以该帐户启动的 cmd 运行它。你猜怎么着,找不到exe...

最后我意识到任务计划程序和其他帐户不知道 .exe 的位置。将它复制到脚本所在的位置,它终于正确运行了。希望这会有所帮助;)

【讨论】:

    【解决方案2】:

    尝试从正在运行的任务的上下文中进行测试,而不是登录用户。您可以将 getData 函数返回的输出或生成的异常写入文本文件,如下所示:

    try:
        x = getData("valid input data for website")
        with open('py_log.txt', 'w') as f:
            f.write("Function ran without exception, it returned:\n")
            f.write(str(x))
    except Exception as e:
        with open('py_log.txt', 'w') as f:        
            if 'x' in globals():
                f.write("Function threw an exception, it returned\n")
                f.write(str(x))
            f.write("Reported exception\n")
            f.write(str(e))    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      相关资源
      最近更新 更多