繁体   English   中英

如何在 Azure Web 应用程序上运行 apt-get 或在 azure 上的烧瓶中导入 cv2?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM