已安装模块时获取 flask 无法导入 flask-mysqldb 错误
Getting flask fail to import error for flask-mysqldb when the module is already installed
我试图从 this 教程中学习 link 使用 MySQL 数据库的烧瓶。
我使用 pip3 安装 flask-mysqldb
到我的虚拟环境中,这是成功的。
有一些答案,但它们都涵盖了 fail to install flask-mysqldb
在我的情况下,安装本身是成功的,但我仍然在网页上收到错误。
当我使用 flask run
启动服务器并尝试 运行 路由 URL localhost:5000/
进入浏览器时,我收到 [=12 的导入错误=].
这正是我得到的错误:
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
.[=24 的同一 python 环境中 运行 连接服务器=]
此外,我在 'base' 命名环境中的机器上安装了 anaconda-navigator 我尝试使用 conda install flask-mysqldb
安装模块,但它没有显示模块错误。那么有没有可能是conda环境导致的错误呢?
请提出任何解决方案,从昨晚开始一直停留在这个问题上。
编辑:
我发现 安装 MySQL-python
应该可以解决这个问题,但是我在安装 MySQL-python
时遇到另一个错误
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/
以同样的顺序试试这个
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
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run()
然后执行app模块
python app.py
首先,安装Flask-MySQLdb:
$ pip install flask-mysqldb
Flask-MySQLdb 取决于并将为您安装最新版本的 Flask(0.12.4 或更高版本)和 mysqlclient。 Flask-MySQLdb 与 Python 2.7、3.5、3.6 和 3.7 兼容并经过测试。
接下来,将 MySQL 实例添加到您的代码中:
from flask import Flask
from flask_mysqldb import MySQL
..根据提供的信息 - here.
link 到文档 - here.
我试图从 this 教程中学习 link 使用 MySQL 数据库的烧瓶。
我使用 pip3 安装 flask-mysqldb
到我的虚拟环境中,这是成功的。
有一些答案,但它们都涵盖了 fail to install flask-mysqldb
在我的情况下,安装本身是成功的,但我仍然在网页上收到错误。
当我使用 flask run
启动服务器并尝试 运行 路由 URL localhost:5000/
进入浏览器时,我收到 [=12 的导入错误=].
这正是我得到的错误:
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
.[=24 的同一 python 环境中 运行 连接服务器=]
此外,我在 'base' 命名环境中的机器上安装了 anaconda-navigator 我尝试使用 conda install flask-mysqldb
安装模块,但它没有显示模块错误。那么有没有可能是conda环境导致的错误呢?
请提出任何解决方案,从昨晚开始一直停留在这个问题上。
编辑:
我发现 MySQL-python
应该可以解决这个问题,但是我在安装 MySQL-python
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/
以同样的顺序试试这个
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
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run()
然后执行app模块
python app.py
首先,安装Flask-MySQLdb:
$ pip install flask-mysqldb
Flask-MySQLdb 取决于并将为您安装最新版本的 Flask(0.12.4 或更高版本)和 mysqlclient。 Flask-MySQLdb 与 Python 2.7、3.5、3.6 和 3.7 兼容并经过测试。
接下来,将 MySQL 实例添加到您的代码中:
from flask import Flask
from flask_mysqldb import MySQL
..根据提供的信息 - here.
link 到文档 - here.