首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >已安装模块时,获取flask-mysqldb的flask导入失败错误

已安装模块时,获取flask-mysqldb的flask导入失败错误
EN

Stack Overflow用户
提问于 2019-07-21 13:14:17
回答 2查看 10.6K关注 0票数 3

我试图从this教程中学习如何将flask与MySQL数据库链接起来。

我在我的虚拟环境中成功地安装了使用pip3的flask-mysqldb

有一些答案,但他们都涵盖了fail to install flask-mysqldb,在我的情况下,安装本身是成功的,但我仍然在网页上得到错误。

当我使用flask run启动服务器并尝试将路由的URL localhost:5000/运行到浏览器中时,我收到了flask-mysqldb的导入错误。

这就是我得到的确切错误:

代码语言:javascript
运行
复制
flask.cli.NoAppException: While importing "todo_app", an ImportError was raised:

File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)

File "/home/shubham/repos/academy-hackathon/week-0/day-3/my_todo_app/todo_app/app.py", line 7, in <module> 
from flask_mysqldb import MySQL 

File "/home/shubham/venv/lib/python3.6/site-packages/flask_mysqldb/__init__.py", line 1, in <module> 
import MySQLdb 

File "/home/shubham/venv/lib/python3.6/site-packages/MySQLdb/__init__.py", line 18, in <module> 
from . import _mysql 

ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 338, in __call__
    self._flush_bg_loading_exception()
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 326, in _flush_bg_loading_exception
    reraise(*exc_info)
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 314, in _load_app
    self._load_unlocked()
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 388, in load_app
    app = locate_app(self, import_name, name)
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 247, in locate_app
    "\n\n{tb}".format(name=module_name, tb=traceback.format_exc())
flask.cli.NoAppException: While importing "app", an ImportError was raised:

Traceback (most recent call last):
  File "/home/shubham/venv/lib/python3.6/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/home/shubham/repos/academy-hackathon/week-0/day-3/my_todo_app/todo_app/app.py", line 7, in <module>
    from flask_mysqldb import MySQL
  File "/home/shubham/venv/lib/python3.6/site-packages/flask_mysqldb/__init__.py", line 1, in <module>
    import MySQLdb
  File "/home/shubham/venv/lib/python3.6/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory

venv是python环境的名称

我不确定为什么会出现这个错误,因为我是在安装模块flask-mysqldb的相同python环境中运行服务器的。

另外,我在我的机器上安装了anaconda-navigator,命名为“base”的环境我尝试使用conda install flask-mysqldb安装模块,但没有显示模块错误。那么这个错误有没有可能是由于conda环境造成的呢?

请提出任何解决方案,从昨晚卡住了这一点。

编辑:我发现here安装MySQL-python应该可以解决这个问题,但我在安装MySQL-python时遇到了另一个错误

代码语言:javascript
运行
复制
Collecting MySQL-python
  Using cached https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.zip
    ERROR: Complete output from command python setup.py egg_info:
    ERROR: Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-9zyrtdz5/MySQL-python/setup.py", line 13, in <module>
        from setup_posix import get_config
      File "/tmp/pip-install-9zyrtdz5/MySQL-python/setup_posix.py", line 2, in <module>
        from ConfigParser import SafeConfigParser
    ModuleNotFoundError: No module named 'ConfigParser'
    ----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-9zyrtdz5/MySQL-python/
EN

Stack Overflow用户

发布于 2019-07-21 14:30:19

按相同的顺序尝试此操作

代码语言:javascript
运行
复制
sudo apt install python3.6-dev libpython3.6-dev
sudo apt-get install mysql-server
virtualenv -p python3.6 venv
source venv/bin/activate
pip3 install flask
pip3 install flask-mysqldb

然后创建app.py

代码语言:javascript
运行
复制
from flask import Flask

app = Flask(__name__)


if __name__ == '__main__':
    app.run()

然后执行app模块

代码语言:javascript
运行
复制
python app.py
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57130527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档