Flask ImportError:没有名为 Flask 的模块[重复]
- 2025-04-16 08:57:00
- admin 原创
- 16
问题描述:
我正在关注这里的 Flask 教程:
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
当我尝试 ./run.py 时我得到了:
Traceback (most recent call last):
File "./run.py", line 3, in <module>
from app import app
File "/Users/benjaminclayman/Desktop/microblog/app/__init__.py", line 1, in <module>
from flask import Flask
ImportError: No module named flask
这看起来类似于:
导入错误:没有名为 flask 的模块
但他们的解决方案没什么用。作为参考,我确实有一个名为 flask 的文件夹,有位用户提到它可能会导致问题。
解决方案 1:
尝试删除你创建的虚拟环境。然后使用以下命令创建一个新的虚拟环境:
virtualenv flask
然后:
cd flask
现在让我们激活虚拟环境
source bin/activate
现在您应该(flask)
在命令行的左侧看到。
编辑:在 Windows 中没有“源”,这是 Linux 的事情,而是执行 activate.bat 文件,这里我使用 Powershell 执行此操作:PS C:\DEV\aProject> & .FlaskScriptsactivate
)
让我们安装 Flask:
pip install flask
然后创建一个名为hello.py
(注意:见UPDATE Flask 1.0.2
下文)的文件:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
并运行它:
python hello.py
更新 Flask 1.0.2
使用新的 Flask 版本,无需从脚本运行应用程序。 hello.py
现在应该看起来像这样:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
并运行它:
FLASK_APP=hello.py flask run
确保hello.py
运行最新命令时位于文件夹内。
创建 hello.py 之前的所有步骤也适用于这种情况
解决方案 2:
对于 Python 3 使用
pip3 安装 Flask
解决方案 3:
激活虚拟环境并安装 Flask 后,我创建了一个 app.py 文件。我像这样运行它:python -m flask run
。希望这会有所帮助!
解决方案 4:
我唯一能解决的方法是将用户的 Python 目录添加到 myapp.wsgi 文件中。例如:
sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')
我想如果你在全局环境中安装软件包,那么应该不会有问题,但我以用户身份安装了我的 python 软件包。
解决方案 5:
我遇到了与 flasgger 类似的问题。
原因是我总是使用
sudo pip install flask
但出于某种原因,这并不总是可行的。有时,你不得不
pip install flask
另一个问题是,有时人们会pip install Flask
用大写字母 F
如果有人遇到问题,就把这个贴在这里。如果它有帮助的话,请告诉我。
有用的链接:
pip install 和 sudo pip install 有什么区别?
解决方案 6:
当我在 Windows 中遇到类似错误时,这对我有用:
安装虚拟环境:
pip install virtualenv
创建虚拟环境:
virtualenv flask
导航到脚本并激活虚拟环境:
activate
安装Flask:
python -m pip install flask
检查 Flask 是否已安装:
python -m pip list
解决方案 7:
另一件事 - 如果你正在使用 python3,请确保你使用 启动服务器python3 server.py
,而不是python server.py
解决方案 8:
这对我有用,
sudo -H pip install flask
或者对于 pip3(python3)使用:
sudo -H pip3 install flask
旁注
如果您使用虚拟环境 (virtualenv),最好 pip freeze >> requirements.txt
允许将已安装的软件包列在一个地方。sudo
命令和-H
标志。有关标志的更多信息sudo
,-H
请参阅Paul 的 回答。希望这对您有所帮助。
解决方案 9:
我使用的是 python2,但安装了这个:sudo apt-get install libapache2-mod-wsgi-py3
而不是: sudo apt-get install libapache2-mod-wsgi
纠正安装解决了没有烧瓶的问题。
解决方案 10:
编辑
/etc/apache2/sites-available/FlaskApp.conf
在“WSGIScriptAlias”行之前添加以下两行:
WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskApp
WSGIProcessGroup FlaskApp
重新启动Apache:
service apache2 restart
我也在遵循 Flask 教程。我遇到了同样的问题。我找到了这种方法来修复它。
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
解决方案 11:
就我而言,解决方案很简单,只需启动我的虚拟环境即可:
$ venv/scripts/activate
看来我对 Python 还很陌生 :)
解决方案 12:
如果您正在使用 Pycharm,那么这就是虚拟环境问题。
因此,在创建 Python 项目时,您必须选择“现有解释器”选项->单击“系统解释器”->选择正确的选项,例如“*\AppData\Local\Programs\Python\Python3.6\python.exe”。
您也可以使用“新虚拟环境”,但我刚刚给出了适用于 Pycharm 用户的快速修复方法。
解决方案 13:
以前的版本似乎在使用一个愚蠢的东西,Flask
而当前版本正在使用,flask
请确保使用小写的 Flask
解决方案 14:
前往 microblog 中的 flask 文件,使用 激活虚拟环境source bin/activate
,然后前往 flask/bin 目录并安装 flask 以及其余软件包pip install flask
。您将在 bin 目录中看到 flask 列表。尝试从 microblog(或您拥有该文件的任何位置)再次运行./run.py
。
解决方案 15:
我甚至也建议你使用 virtualenv,这也许可以解决你的问题。
sudo apt install python-flask
如果您想在生产服务器中部署,那么请继续上述解决方案,否则请使用虚拟环境。
解决方案 16:
解决这个问题最简单的方法是在你的环境中指定正确的 Flask 路径。确保你正在运行的脚本知道如何访问 Flask 的安装路径。使用上面提到的 print(sys.path) 肯定有助于找出脚本使用的路径。
解决方案 17:
然后进入你的python交互模式:
import sys
sys.path
它会打印你的路径。检查 flask 是否安装在 sys.path 中。
对于 MacOS,python 路径位于 /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
但是 pip 会默认在 /Library/Python/2.7/site-packages 下安装 python 包
这就是它不适用于 MacOS 的原因。
解决方案 18:
Flask 脚本非常适合启动本地开发服务器,但每次修改代码后都必须手动重启。这不太好,Flask 可以做得更好。如果启用调试支持,服务器会在代码修改后自动重新加载,并且如果出现问题,它还会提供一个有用的调试器。要启用调试模式,您可以在运行服务器之前导出 FLASK_DEBUG 环境变量:例如,您的文件是 hello.py
$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run
解决方案 19:
在我使用 Docker 的情况下,我的 .env 文件没有被复制,因此没有设置以下环境变量:
.环境.本地:FLASK_APP=src/app.py
所以我Dockerfile
必须包括:
FROM deploy as dev
COPY env ./env
在 docker-compose.yml 中引用
env_file: ./env/.env.local
我必须注意的另一件事是路径变量,以确保我的环境被使用
ENV PATH $CONDA_DIR/envs/:my_environment_name_from_yml_file:/bin:$CONDA_DIR/bin:$PATH```
解决方案 20:
我的回答仅针对使用 Visual Studio Flesk Web 项目的任何用户:
只需右键单击“Python 环境”,然后单击“添加环境”
解决方案 21:
我在使用 WSL 和 PyCharm / VSCode 时也遇到了类似的问题,但问题只出现在开发环境中,在生产环境中没有出现。我意识到使用 WSL 的 IDE 在从工作目录导出 PYTHONPATH 时可能会出现问题,于是我开始手动进行操作。
在运行程序之前,在 VENV 内部,尝试运行以下命令:
export PYTHONPATH="path/my_user/code"
解决方案 22:
对于你的情况,解决方案是:
第一的:
打开终端并导航到该 python 文件所在的目录/文件夹(在您的情况下,您创建的 python 文件是 run.py),并确保已在同一目录/文件夹中安装了 flask。
第二 :
现在,输入以下命令:
$python3 "pythonfilename" (在你的例子中,它是 $python3 "run.py")
解决方案 23:
我遇到了同样的错误,它说找不到 flask 模块。这是我所做的:
使用 venv 创建虚拟环境 $ python3.6 -m venv --without-pip virtual
使用 source virtual/bin/activate 激活虚拟环境
下载pip进入虚拟环境curl https://bootstrap.pypa.io/get-pip.py | python
使用 pip install flask 安装 flask
运行我的应用程序后,一切都很好。
解决方案 24:
首先需要创建一个 Python 环境
像这样:
py -m venv YOUR_DIR_NAME
解决方案 25:
您也可以尝试这个解决方法set FLASK_DEBUG=1 && python -m flask run
它对我有用
解决方案 26:
升级 pip 后它对我有用:
curl https://bootstrap.pypa.io/get-pip.py | python
在这里找到了答案:https://stackoverflow.com/a/49748494/3197202
然后我就可以安装 Flask 了:
pip install flask
扫码咨询,免费领取项目管理大礼包!