我有一个水瓶座的网络应用程序,我试图发表在天青。我在web应用程序上部署了它,创建了新的资源,下载了用户发布配置文件,并使用下载的文件从visual studio发布了它。在本地主机上,一切运行都很顺利,但是一旦发布了im获取错误:
我几乎不知道这意味着什么。这是我的第一个网站,所以我很新鲜。
我的项目有如下结构。

我的Views.py用以下代码调用senna-win32.exe:
senna_path = os.path.join('senna\\senna-win32.exe')
p = subprocess.Popen(senna_path, stdout=subprocess.PIPE,stdin=subprocess.PIPE)
grep_stdout = p.communicate(input=bytes(va, 'utf-8'))[0]
inList = grep_stdout.decode()
inList = list(inList.splitlines())我的本地主机上似乎没有任何问题/错误,但不确定发生了什么事。
发布于 2017-01-23 08:02:55
根据我的经验,有许多原因会导致像你这样的问题。
对于第一种情况,reqirements.txt文件中需要的一些Python包不是直接安装在Azure WebApp上的。对于这种情况,您需要遵循故障排除的官方图腾来解决它。甚至,您也可以尝试按照我的解决方案为另一个线程发布使用python脚本的MVC应用程序来解决它。
但是,我认为您的问题可能是由于代码中的senna_path不是Azure WebApp上的有效路径造成的。我尝试创建一个简单的Python脚本,如下所示在Azure WebApp上使用Kudu控制台测试您的代码,它通过命令python test.py > test.out.txt工作得很好。
import os
from subprocess import Popen, PIPE
path = os.path.join('senna-win32.exe')
p = Popen(path, stdin=PIPE, stdout=PIPE)
grep_stdout = p.communicate(input="happy time".encode('utf-8'))[0]
inList = grep_stdout.decode()
inList = list(inList.splitlines())
print inList所以我的建议是尝试使用绝对路径D:\home\site\wwwroot\FlaskWebProject1\senna\senna-win32.exe而不是senna\senna-win32.exe来解决这个问题。
如有任何更新,请随时通知我。
发布于 2018-05-21 10:28:23
我也有同样的问题,在我的例子中,问题是缺少了stderr的重定向,就像我只重定向stdout+stdin的代码一样。
添加stderr=PIPE解决了我的问题。
process = Popen(exe_relative_path, stdin=PIPE, stdout=PIPE, stderr=PIPE) https://stackoverflow.com/questions/41785517
复制相似问题