我尝试使用mysql连接部署Flask Web应用程序。这是我第一次使用Azure,而且从Linux开始这一切似乎都很混乱。
我的理解是,在requirements.txt
中包含所需的包。当我从Azure构建默认的Flask应用程序时,文件如下所示:
Flask<1
在此阶段,网站加载正常。
如果我再添加一行
https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.14.tar.gz
根据这个答案https://stackoverflow.com/a/34489738/2697874
然后在我的views.py文件中(它似乎与我的旧app.py文件基本相同)我包括... import mysql.connector
然后我重新启动并重新加载我的网站...然后返回错误The page cannot be displayed because an internal server error has occurred.
错误日志记录吐出一堆html(似乎很奇怪的方式来传递错误日志 - 所以我必须在这里遗漏一些东西)。当我保存到HTML并加载它时,我得到了这个......
如何在我的Flask网络应用程序中包含mysql.connector库?
答案 0 :(得分:1)
根据我的经验,资源https://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.1.14.tar.gz
适用于Linux,而不适用于基于Windows的Azure WebApps,此链接似乎现在无法使用。
我使用命令pip search mysql-connector
列出了相关的包。然后,我尝试通过mysql-connector
使用mysql-connector-python
代替pip install
,并尝试使用本地Python解释器中的import mysql.connector
。
因此,请使用IDE在项目的mysql-connector==2.1.4
文件中使用mysql-connector-python==
代替requirements.txt
,然后在Azure上重新部署项目,然后重试。该软件包将自动安装,如下所述doc。
包裹管理
requirements.txt中列出的软件包将使用pip自动安装在虚拟环境中。 每次部署都会发生这种情况,但如果已安装软件包,则pip将跳过安装。
任何更新,请随时告诉我。