Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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 在Azure应用程序服务中使用xgboost时使用部署时出错_Python_Azure_Azure Web App Service_Xgboost - Fatal编程技术网

Python 在Azure应用程序服务中使用xgboost时使用部署时出错

Python 在Azure应用程序服务中使用xgboost时使用部署时出错,python,azure,azure-web-app-service,xgboost,Python,Azure,Azure Web App Service,Xgboost,我正在部署一个flask web应用程序,使用xgboost训练机器学习模型。在本地计算机上工作正常,在使用Azure App services linux计算机时出现错误 似乎没有正确安装xgboost。我也无法使用他们的web SSH进行故障排除,因为它每隔几秒钟就会断开连接。有人知道怎么修吗 错误: 2019-04-05T20:46:57.927633884Z /home/site/wwwroot/antenv/lib/python3.7/site-packages/sklearn/ext

我正在部署一个flask web应用程序,使用xgboost训练机器学习模型。在本地计算机上工作正常,在使用Azure App services linux计算机时出现错误

似乎没有正确安装xgboost。我也无法使用他们的web SSH进行故障排除,因为它每隔几秒钟就会断开连接。有人知道怎么修吗

错误:

2019-04-05T20:46:57.927633884Z /home/site/wwwroot/antenv/lib/python3.7/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py:47: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
2019-04-05T20:46:57.927671786Z   import imp
2019-04-05T20:46:57.927678286Z [2019-04-05 20:46:57 +0000] [39] [ERROR] Exception in worker process
2019-04-05T20:46:57.927682786Z Traceback (most recent call last):
2019-04-05T20:46:57.927686887Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2019-04-05T20:46:57.927691387Z     worker.init_process()
2019-04-05T20:46:57.927695487Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process
2019-04-05T20:46:57.927700087Z     self.load_wsgi()
2019-04-05T20:46:57.927703987Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2019-04-05T20:46:57.927715888Z     self.wsgi = self.app.wsgi()
2019-04-05T20:46:57.927720188Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
2019-04-05T20:46:57.927724388Z     self.callable = self.load()
2019-04-05T20:46:57.927728188Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2019-04-05T20:46:57.927732288Z     return self.load_wsgiapp()
2019-04-05T20:46:57.927736189Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2019-04-05T20:46:57.927740389Z     return util.import_app(self.app_uri)
2019-04-05T20:46:57.927744389Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app
2019-04-05T20:46:57.927748389Z     __import__(module)
2019-04-05T20:46:57.927752289Z   File "/home/site/wwwroot/app.py", line 4, in 
2019-04-05T20:46:57.927756789Z     import xgboost as xgb
2019-04-05T20:46:57.927760690Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/xgboost/__init__.py", line 11, in 
2019-04-05T20:46:57.927764990Z     from .core import DMatrix, Booster
2019-04-05T20:46:57.927768990Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/xgboost/core.py", line 136, in 
2019-04-05T20:46:57.927773190Z     _LIB = _load_lib()
2019-04-05T20:46:57.927776990Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/xgboost/core.py", line 128, in _load_lib
2019-04-05T20:46:57.927781090Z     lib.XGBGetLastError.restype = ctypes.c_char_p
2019-04-05T20:46:57.927784991Z UnboundLocalError: local variable 'lib' referenced before assignment

看起来xgboost模块没有加载。我建议您在启动期间导入mpodule。在Docker中,可以通过在Docker文件中指定安装步骤来完成此操作

您可以使用基于alpine的docker图像的dockerfile中的步骤:

顺便说一句,我通过Github线程上的讨论发现了这一点:

更多信息: 实现这一点的一种方法是从以下位置复制Azure应用程序服务中使用的官方Python映像:


一旦你有了这个,你就可以在你的回购协议中编辑docker文件,包括上面发布的解决方案中的步骤来构建你自己的docker镜像。这将确保已加载所有模块

看起来xgboost模块没有加载。我建议您在启动期间导入mpodule。在Docker中,可以通过在Docker文件中指定安装步骤来完成此操作

您可以使用基于alpine的docker图像的dockerfile中的步骤:

顺便说一句,我通过Github线程上的讨论发现了这一点:

更多信息: 实现这一点的一种方法是从以下位置复制Azure应用程序服务中使用的官方Python映像:


一旦你有了这个,你就可以在你的回购协议中编辑docker文件,包括上面发布的解决方案中的步骤来构建你自己的docker镜像。这将确保已加载所有模块

您是否要在Linux上部署带有xgboost模型的flask应用程序到应用程序服务?请参阅并告诉我您尝试了什么。我尝试了本课程的下半部分:使用Azure DevOps builds()部署。是否要在Linux上使用xgboost model to app Service部署您的flask应用程序?请参阅并告诉我您做了哪些尝试。我尝试了此步骤的下半部分:使用Azure DevOps版本部署()。我尝试了此步骤的下半部分:使用Azure DevOps版本部署()。我最终创建了一个客户docker,在docker hub上推送,并在应用程序服务中使用。虽然这不是我想做的。如果应用程序使用默认docker映像中不存在的任何依赖项,那么开发自定义映像是一个更好的选择,以确保这些依赖项是预安装的。除了维护docker映像的开销外,这种方法几乎没有什么优势。如果回答有帮助,请将答案投上一票。对迟来的回答表示歉意。不幸的是,这并不能解决我的问题。我已经尝试了您提供的方法,但这不是我想要使用的方法。我尝试了第二部分:使用Azure DevOps builds()部署。我最终创建了一个客户docker,在docker hub上推送,并在应用程序服务中使用。虽然这不是我想做的。如果应用程序使用默认docker映像中不存在的任何依赖项,那么开发自定义映像是一个更好的选择,以确保这些依赖项是预安装的。除了维护docker映像的开销外,这种方法几乎没有什么优势。如果回答有帮助,请将答案投上一票。对迟来的回答表示歉意。不幸的是,这并不能解决我的问题。我已经尝试过你给出的方法,虽然那不是我想要使用的方法。