无法将pyodbc下载到Azure应用程序服务

2024-06-10 21:08:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Azure应用服务制作我的网站。这个网站在我的本地主机上运行得很好,使用了sqllite数据库和SQLAlchemy。现在我尝试使用以下命令切换到azuresqldb:https://gist.github.com/timmyreilly/f4a351eda5dd45aa9d56411d27573d7c

我按照指示走了,但我发现了这个错误。我查找错误,发现了这个错误:pyodbc - error while running application within a container,但它没有帮助,因为那里的解决方案说要做sudo apt install unixodbc-dev,但是azurecli不允许我使用sudo,所以我不确定如何才能做到这一点。你们能帮帮我吗?我该怎么办?在

2019-02-15T00:55:28.174067202Z   File "/home/site/wwwroot/antenv/lib/python3.7/site-packages/sqlalchemy/connectors/pyodbc.py", line 38, in dbapi
2019-02-15T00:55:28.174070902Z     return __import__('pyodbc')
2019-02-15T00:55:28.174195702Z ImportError: libodbc.so.2: cannot open shared object file: No such file or directory

Tags: https命令数据库sqlalchemy网站错误sudosite
1条回答
网友
1楼 · 发布于 2024-06-10 21:08:00

根据您的错误信息和@IvanYang注释,您将Python应用部署在基于Docker的Azure app Service for Linux容器上。在

因此,您可以参考正式文档^{}连接到应用程序的Linux系统,通过sudo apt install unixodbc-dev安装丢失的unixodbc-dev包,然后在重新启动应用程序服务之前使应用程序正常工作。在

安装的unixodbc-dev的更改是docker容器的临时更改,您可以参考现有的SO线程Install unixodbc-dev for a Flask web app on Azure App Service来了解它。保持它正常工作的唯一方法是将下面的内容添加到您的.dockerfile文件中,或者使用在Linux上创建App Service实例时安装了所需软件包的docker映像。在

# Add unixodbc support
RUN apt-get update \
        && apt-get install -y  no-install-recommends unixodbc-dev

相关问题 更多 >