我们在Azure中有一个Python flask应用程序作为应用程序服务运行。我们最近将我们的解决方案升级到VS2017。这改变了python项目中的一些配置文件,现在当我们发布时,我们得到:
HTTP Error 500.0 - Internal Server Error scriptProcessor could not be found in application configuration Detailed Error Information: Module FastCgiModule Notification ExecuteRequestHandler Handler PythonHandler Error Code 0x80070585 Requested URL http://OcvCluster-int__b155:80/handler.fcgi/ Physical Path D:\home\site\wwwroot\handler.fcgi\ Logon Method Anonymous Logon User Anonymous Request Tracing Directory D:\home\LogFiles
如果我回到旧版本(升级前),我可以从2015年开始发布。但是,我无法在2015年打开最新的主控形状,因此我无法发布我们服务中需要的更改。在
我花了整整一天的时间浏览了一些文章,比如:
https://docs.microsoft.com/en-us/visualstudio/python/managing-python-on-azure-app-servicehttps://docs.microsoft.com/en-us/visualstudio/python/publishing-to-azure
尝试用reg更新我的web.config文件. 在
这里有关于升级路径的信息吗?我们破产了。让我困惑的事情:
•关于将Flask应用程序发布到VS的教程指出,您需要在应用程序服务上安装Python作为扩展。是新的吗?我们以前从未这样做过。
•我们在env文件夹中有许多自定义库。在VS2015中,这些都是作为发布过程的一部分上载的。当我从VS2017发布时,我没有看到这种情况发生(尽管以前的版本中仍然存在)
•一些论坛帖子谈到必须在应用程序配置. 我们的应用程序没有应用程序配置.
这是我的web.config文件(上面的评论表明了我一直在试验的地方)。在
^{pr2}$谢谢, ~约翰
正如您在Managing Python on Azure App Service中发现的:
尽管默认情况下,App Service在服务器的根文件夹中安装了python2.7和python3.4,但您无法在这些环境中自定义或安装包。在
因此,Azure应用服务建议您现在就依赖
site extension
。在据我所知,我们可以在
requirements.txt
文件中列出程序所依赖的python包的版本。当项目部署到Azure时,这些包将被下载到env
文件夹中。在但是,现在这不适用于
site extensions
。您可以在KUDU console
上安装包。请参考我之前工作的步骤。在步骤1:创建azure web应用程序并添加扩展(这里是Python3.6.1 x64)
步骤2:发布您的
flask
项目并添加web.config
。在在web.config文件公司名称:
步骤3:切换到Kudu命令和命令
cd Python361x64
和touch get-pip.py
,通过编辑按钮将urlhttps://bootstrap.pypa.io/get-pip.py
复制到get-pip.py
中,然后运行python get-pip.py
来安装pip工具。在步骤4:通过python-mpipinstallpyodbc安装pyodbc包或任何需要的包
另外,我注意到在web.config文件不包括应用程序的根路径
D:\home\site\wwwroot
。PYTHONPATH
的值可以自由扩展,但必须包含应用程序的根。在您需要检查映射到scriptProcessor的路径中的Python解释器是否存在。在
希望对你有帮助。有什么问题,请告诉我。在
相关问题 更多 >
编程相关推荐