第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Docker 的 Ubuntu 上使用 azure.storage.blob

在 Docker 的 Ubuntu 上使用 azure.storage.blob

qq_笑_17 2021-12-29 20:13:24
我有一個 python3.6 腳本,需要從 Azure 中的 blob 存儲獲取內(nèi)容,我想在 Ubuntu 16.04 docker 容器中運行該腳本。問題我使用這個dockerfile 是因為我也使用 pyodbc 連接到 SQL Server。在我的需求文件中,我列出azure.storage了構(gòu)建 docker 鏡像時安裝的文件。但是當(dāng)嘗試運行腳本時,我收到以下錯誤:root@b61c65dadb5d:/app# python3 val.pyTraceback (most recent call last):  File "val.py", line 12, in <module>    from azure.storage.blob import BlockBlobService  File "/usr/local/lib/python3.6/dist-packages/azure/storage/__init__.py", line 21, in <module>    from .models import (  File "/usr/local/lib/python3.6/dist-packages/azure/storage/models.py", line 27, in <module>    from cryptography.hazmat.primitives.keywrap import(  File "/usr/local/lib/python3.6/dist-packages/cryptography/hazmat/primitives/keywrap.py", line 12, in <module>    from cryptography.hazmat.primitives.constant_time import bytes_eq  File "/usr/local/lib/python3.6/dist-packages/cryptography/hazmat/primitives/constant_time.py", line 11, in <module>    from cryptography.hazmat.bindings._constant_time import libImportError: No module named '_cffi_backend'我試過的經(jīng)過一番搜索,我發(fā)現(xiàn)了一些建議,其中一個建議運行pip install cffi. 嘗試此操作時,我得到:root@b61c65dadb5d:/app# pip3 install cffiRequirement already satisfied: cffi in /usr/local/lib/python3.6/dist-packages (1.12.2)Requirement already satisfied: pycparser in /usr/local/lib/python3.6/dist-packages (from cffi) (2.19)同樣適用 pip install cryptography因為 python 很難找到 azure 模塊,所以我在腳本的開頭有這個,所以它應(yīng)該能夠找到位于該目錄中的任何內(nèi)容:import syssys.path.append('/usr/local/lib/python3.6/dist-packages')(我知道我可以在 Dockerfile 中做到這一點,我會的)其他人說import cffi在 python 腳本中添加解決了這個問題。它不適合我。如何繁殖這個問題可以很容易地用這個最小的 python 腳本重現(xiàn):import syssys.path.append('/usr/local/lib/python3.6/dist-packages')from azure.storage.blob import BlockBlobService以交互方式運行它或添加用于運行腳本的 CMD。請注意,python 腳本必須位于與 Dockerfile 相同目錄中名為“app”的文件夾中。如果您使用的是 interacive,您可以嘗試pip3 install cffi查看它是否已安裝。
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

恐怕azure.storagePyPI中沒有命名的包,應(yīng)該是azure-storage,所以命令RUN pip3 install azure.storage不正確。實際上,當(dāng)命令pip install azure.storage安裝Azure Storage SDK for Python時,它也會下載azure_storage-0.36.0-py2.py3-none-any.whl安裝azure-storage包,出現(xiàn)一些問題,如下圖。

http://img1.sycdn.imooc.com//61cc510e000133da09660156.jpg

我認(rèn)為在圖片的紅色框上面顯示的問題會打破進步的容器旁邊安裝一些需要的包的azure-storagecffi,cryptography等等。所以我建議你可以使用corrent包名azure-storage再試一次。


查看完整回答
反對 回復(fù) 2021-12-29
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗 獲得超5個贊

我無法使用 ubuntu 16.04 映像使其工作,但是,它可以使用 python 3.6 映像工作。


正如彼得潘在他的回答中指出的那樣,包名是錯誤的。應(yīng)該azure-storage不是azure.storage。將其更改為正確的名稱后問題仍然存在(看起來即使名稱錯誤,它仍然能夠獲得正確的包)。這可能是我機器上的本地問題,我不知道,我現(xiàn)在只能推測。


無論如何,它使用當(dāng)前基于 debian 9 的 python 3.6 映像確實可以工作,沒有任何問題,因此為我解決了這個問題。


如果其他人在使用 python 連接到 azure blob 存儲或其他 azure 功能以及 azure SQL 時遇到類似問題,這是我最終使用的:


FROM python:3.6


RUN apt-get update && apt-get install -y \

    curl apt-utils apt-transport-https debconf-utils gcc build-essential


RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

RUN curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list


RUN apt-get update

RUN ACCEPT_EULA=Y apt-get -y install msodbcsql17

RUN apt-get install -y unixodbc-dev


COPY /app /app

WORKDIR /app


RUN pip install -r requirements

CMD ["python", "val.py"]

Azure SDK 應(yīng)該是開箱即用的,所有其他東西都是用于通過 ODBC 連接到 SQL。


可以說像 gcc 這樣的東西不應(yīng)該包含在生產(chǎn)圖像中,但這與這個問題并不真正相關(guān)。


查看完整回答
反對 回復(fù) 2021-12-29
  • 2 回答
  • 0 關(guān)注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號