[英]How do I run apt-get on an Azure web app or import cv2 in flask on azure?
我正在尝试在 Flask webapp 中导入 cv2,我收到以下消息。
...
2019-08-16T11:48:08.491189686Z return util.import_app(self.app_uri)
2019-08-16T11:48:08.491192986Z File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
2019-08-16T11:48:08.491196286Z __import__(module)
2019-08-16T11:48:08.491199486Z File "/home/site/wwwroot/Webapp/main.py", line 12, in
2019-08-16T11:48:08.491203086Z import cv2
2019-08-16T11:48:08.491206386Z File "/home/site/wwwroot/antenv3.6/lib/python3.6/site-packages/cv2/__init__.py", line 3, in
2019-08-16T11:48:08.491209886Z from .cv2 import *
2019-08-16T11:48:08.491213086Z ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
2019-08-16T11:48:08.497759820Z [2019-08-16 11:48:08 +0000] [36] [INFO] Worker exiting (pid: 36)
2019-08-16T11:48:08.652109211Z [2019-08-16 11:48:08 +0000] [33] [INFO] Shutting down: Master
2019-08-16T11:48:08.652493413Z [2019-08-16 11:48:08 +0000] [33] [INFO] Reason: Worker failed to boot.
为了解决我尝试在https://rvvoting.scm.azurewebsites.net/DebugConsole 上运行 apt-get install libgtk2.0-dev 但我收到此错误
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
/home>
我还尝试在网络 SSH 上运行 apt-get 命令,但它会在我打开它时自动关闭
更新:
我从我的代码注释 import cv2,连接到 SSH,然后运行 apt-get update 然后 apt-get install libgtk2.0-dev。 然后我在 ssh 上的 python 中输入 import cv2 并且它工作。 所以我再次通过取消注释 import cv2 来部署 webapp,同样的错误又回来了。
嗨,当您通过 ssh 进入正在运行的应用程序并像这样安装时,您正在手动更新正在运行的“已部署构建”的“构建”。
当您重新部署代码更改时它消失的原因是 cicd 将重新制作“构建”并且手动作业不在您的构建中,因此在进行部署时将其擦干净。
要将其添加到您的构建中,请尝试以下操作:
请确认您有一个 .github/workflows/appName(production).yaml 文件。 如果是这样,您将需要使用以下内容更新该 yaml 文件
----------------- 微软 Azure 默认启动 ------------------ .github/workflows/appName(production).yaml
jobs:
build-and-deploy
runs-on: .....
----------------- 微软 Azure 默认中间 - 名称:Build using AppService-Build ------------------
steps
- name: install the package that I was doing manually
run: |
sudo apt-get install libgtk2.0-dev
------------------ 微软 Azure 默认结束 ------------------
请试一试,因为这是在 pip install requirements.txt 之外向项目添加包的官方方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.