Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x zipfile中的Webjobs运行错误(3587fd:ERR)_Python 3.x_Azure_Azure Web App Service_Azure Webjobs_Azure Webjobssdk - Fatal编程技术网

Python 3.x zipfile中的Webjobs运行错误(3587fd:ERR)

Python 3.x zipfile中的Webjobs运行错误(3587fd:ERR),python-3.x,azure,azure-web-app-service,azure-webjobs,azure-webjobssdk,Python 3.x,Azure,Azure Web App Service,Azure Webjobs,Azure Webjobssdk,我在一个名为fgh.py的文件中有以下小脚本,我一直试图将其作为webjob计划 import pandas as pd df=pd.DataFrame({'a':[1,2,2],'b':[5,6,9]}) df['x']=df.a.sub(df.b) print(df) 使用@Peter Pan。我已经创建了一个虚拟环境,完成了pip安装。从虚拟环境中,脚本将根据需要运行和执行。但是,当加载到Azure Webjobs中时,脚本不会执行。我怀疑运行、bat文件和Azure python

我在一个名为
fgh.py
的文件中有以下小脚本,我一直试图将其作为webjob计划

import pandas as pd

df=pd.DataFrame({'a':[1,2,2],'b':[5,6,9]})

df['x']=df.a.sub(df.b)

print(df)
使用@Peter Pan。我已经创建了一个虚拟环境,完成了
pip安装。从虚拟环境中,脚本将根据需要运行和执行。但是,当加载到
Azure Webjobs
中时,脚本不会执行。我怀疑运行、bat文件和Azure python控制台之间的接口会出现问题,但对Azure的理解有限,无法解决问题

在kudus中,我用它来安装python

cmd中运行
where python
https://myapp.scm.azurewebsites.net/DebugConsole
我明白了

另外从
https://arcgistrial.scm.azurewebsites.net/DebugConsole
当我运行cmd命令
python-V

在我的
run.bat
文件中,我尝试使用上述任一目录,但没有成功

无论是让我的
run.bat
文件
D:\home\python364x64\python.exe fgh.py
还是
D:python364x64\python.exe fgh.py
我都会得到以下错误;

我已经安装了
pandas
,并尝试安装
numpy

所有这些都没有帮助。我已经在这上面呆了几天了,它一定会起作用的。有什么帮助吗?

解决这个问题的关键是你需要在azure上创建你的venv环境。

第一步。在本地成功运行

第二步。压缩您的webjob文件

第三步。上传webjob zip文件

因为测试环境之前有python1,所以稍后我将创建python2的webjob。

第四步。登录库杜

① <代码>光盘..

② 找到Python34,单击它

python-m venv D:\home\site\wwwroot\App\u Data\jobs\continuous\python2\myenv

④ 查找myenv文件夹

⑤ 活动myenv,输入
\activate.bat

D:\home\site\wwwroot\App\u Data\jobs\continuous\python2\myenv\Scripts>\activate.bat

⑥ 回到python2文件夹,输入
pip安装pandas

⑦ 然后输入
python aa.py

(在旧的Webjobs中,运行带有依赖项的python任务并不十分简单。已经有一段时间了,世界已经发展到:)

然而,由于您仍然需要坚持Webjobs,下面是我遵循的有效步骤。由于先决条件,我使用批处理文件(.cmd)来运行python脚本

  • 默认情况下,webjob目前支持python 2.7。因此,在您的web应用程序中添加“extension”中的python3,在本例中,我使用的是3.6.4 x64。这将添加路径
    D:\home\python364x64\
    。我怎么知道的?Kudus控制台:)
  • 创建一个
    requirements.txt
    文件,其中包含
    pandas
    numpy
    (注意,在撰写本文时,我必须明确添加numpy版本1.19.3,因为在Windows主机中使用了最新的1.19.4)。基本上我使用了你的
    fgh.py
    ,它取决于
    pandas
    ,而pandas又取决于
    numpy
  • 创建一个包含以下内容的
    run.cmd
    文件。注:不需要第1行。我只是在检查python版本
  • 压缩
    fgh.py
    run.bat
    requirements.txt
    文件到一个压缩包中。下面是我的zip文件的内容
  • 上传webjob的zip文件
  • 运行作业:)

  • 忽略错误“ModuleNotFoundError:没有名为'certifi'的模块”,这是不需要的。

    @Peter Pan我能做些什么不同的事吗?@希望我能把它整理好。谢谢,我已经完成了。。。然后如何让wbjo在应用程序中运行?转到检查,没有创建webjob。您需要先创建webjob(步骤3)。如果出现问题,您还需要在代码中添加
    import sys.path.append('D:\\home\\site\\wwwroot\\App\u Data\\jobs\\continuous\\python2\\myenv')
    ,以使用myenv。我认为Microsoft官员在这些细节方面仍然存在问题。我们需要试一试。所有操作都是我们测试的结果。如果您有更多问题,您可以提出支持票寻求帮助。我们开发人员可以做的尝试只有这么多。
    pandas==1.1.4
    numpy==1.19.3
    
    D:\home\python364x64\python --version
    D:\home\python364x64\python -m pip install --user --upgrade pip
    D:\home\python364x64\python -m pip install --user certifi
    D:\home\python364x64\python -m pip install --user virtualenv
    D:\home\python364x64\python -m virtualenv .venv
    .venv\Scripts\pip install -r requirements.txt
    .venv\Scripts\python fgh.py