首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Matplotlib (或Numpy,或Plotly)的烧瓶- ModuleNotFound

带有Matplotlib (或Numpy,或Plotly)的烧瓶- ModuleNotFound
EN

Stack Overflow用户
提问于 2022-04-14 02:15:20
回答 1查看 28关注 0票数 -1

我正在尝试在我的SQL支持的烧瓶应用程序中尝试使用matplotlib图表,但是当我试图导入它时,我得到了ModuleNotFound错误。注意,在尝试导入numpy或巧妙地表示时,我也会得到相同的错误。不过,我的venv能够识别SQLAlchemy库,所以我不确定发生了什么。如有任何建议,将不胜感激。

复制的最小步骤:

代码语言:javascript
复制
mkdir flask_test
cd flask_test
python3 -m venv venv
. venv/bin/activate

pip list快速检查预安装

代码语言:javascript
复制
Package    Version
---------- -------
pip        21.3.1
setuptools 60.5.0
WARNING: You are using pip version 21.3.1; however, version 22.0.4 is available.
You should consider upgrading via the '/Users/<me>/Desktop/flask_test/venv/bin/python3.9 -m pip install --upgrade pip' command.

继续安装:

pip install Flask SQLAlchemy matplotlib

代码语言:javascript
复制
  Using cached Flask-2.1.1-py3-none-any.whl (95 kB)
Collecting SQLAlchemy
  Using cached SQLAlchemy-1.4.35-cp39-cp39-macosx_10_15_x86_64.whl (1.5 MB)
Collecting matplotlib
  Using cached matplotlib-3.5.1-cp39-cp39-macosx_10_9_x86_64.whl (7.3 MB)
Collecting importlib-metadata>=3.6.0
  Using cached importlib_metadata-4.11.3-py3-none-any.whl (18 kB)
Collecting Werkzeug>=2.0
  Using cached Werkzeug-2.1.1-py3-none-any.whl (224 kB)
Collecting click>=8.0
  Using cached click-8.1.2-py3-none-any.whl (96 kB)
Collecting Jinja2>=3.0
  Using cached Jinja2-3.1.1-py3-none-any.whl (132 kB)
Collecting itsdangerous>=2.0
  Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting greenlet!=0.4.17
  Using cached greenlet-1.1.2-cp39-cp39-macosx_10_14_x86_64.whl (92 kB)
Collecting packaging>=20.0
  Using cached packaging-21.3-py3-none-any.whl (40 kB)
Collecting python-dateutil>=2.7
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pillow>=6.2.0
  Using cached Pillow-9.1.0-cp39-cp39-macosx_10_9_x86_64.whl (3.1 MB)
Collecting pyparsing>=2.2.1
  Using cached pyparsing-3.0.8-py3-none-any.whl (98 kB)
Collecting numpy>=1.17
  Using cached numpy-1.22.3-cp39-cp39-macosx_10_14_x86_64.whl (17.6 MB)
Collecting kiwisolver>=1.0.1
  Using cached kiwisolver-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl (65 kB)
Collecting cycler>=0.10
  Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting fonttools>=4.22.0
  Using cached fonttools-4.32.0-py3-none-any.whl (900 kB)
Collecting zipp>=0.5
  Using cached zipp-3.8.0-py3-none-any.whl (5.4 kB)
Collecting MarkupSafe>=2.0
  Using cached MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl (13 kB)
Collecting six>=1.5
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: zipp, Werkzeug, six, pyparsing, pillow, numpy, MarkupSafe, kiwisolver, itsdangerous, greenlet, fonttools, cycler, click, SQLAlchemy, python-dateutil, packaging, Jinja2, importlib-metadata, matplotlib, Flask
Successfully installed Flask-2.1.1 Jinja2-3.1.1 MarkupSafe-2.1.1 SQLAlchemy-1.4.35 Werkzeug-2.1.1 click-8.1.2 cycler-0.11.0 fonttools-4.32.0 greenlet-1.1.2 importlib-metadata-4.11.3 itsdangerous-2.1.2 kiwisolver-1.4.2 matplotlib-3.5.1 numpy-1.22.3 packaging-21.3 pillow-9.1.0 pyparsing-3.0.8 python-dateutil-2.8.2 six-1.16.0 zipp-3.8.0

退出venv deactivate

创建hello.py应用程序(hello.py),每个瓶子快速启动:

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

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

运行它

代码语言:javascript
复制
export FLASK_APP=hello
export FLASK_ENV=development
flask run

它运行的很好,我可以看到你好世界。

代码语言:javascript
复制
 * Serving Flask app 'hello' (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 687-225-XXX

现在我尝试导入SQLAlchemy:

代码语言:javascript
复制
from flask import Flask
from sqlalchemy import inspect

app = Flask(__name__)

@app.route("/")
def hello_world():
    print(inspect)
    return "<p>Hello, World!</p>"

我可以看到控制台中正在打印in对象:

<function inspect at 0x10e999ee0>

现在尝试导入matplotlib:

代码语言:javascript
复制
from flask import Flask
from sqlalchemy import inspect
import matplotlib.pyplot as plt

app = Flask(__name__)

@app.route("/")
def hello_world():
    print(inspect)
    print(plt)
    return "<p>Hello, World!</p>"

当我得到这个错误时:

代码语言:javascript
复制
flask.cli.NoAppException: While importing 'hello', an ImportError was raised:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/flask/cli.py", line 260, in locate_app
__import__(module_name)
File "/Users/<me>/Desktop/flask_test/hello.py", line 3, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
EN

回答 1

Stack Overflow用户

发布于 2022-04-14 02:37:03

为了将来的参考:

似乎FlaskSqlAlchemy都安装了系统级,从而给人一种错误的印象,认为matplotlib安装出了问题。

有几种选择:

  1. 启动虚拟主机,然后运行烧瓶。即. ./venv/bin/activate FLASK_APP=hello FLASK_ENV=development flask run

FLASK_APP=hello FLASK_ENV=development ./venv/bin/flask run

  1. 直接运行烧瓶二进制文件

completeness)

  1. 安装matplotlib系统级别(不是真正推荐的),只是为添加以下内容

既然您已经创建了虚拟环境,请使用选项1。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71865741

复制
相关文章

相似问题

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