没有使用virtualenv命名为flask的模块

时间:2013-12-06 00:59:38

标签: python flask virtualenv

我正在按照以下步骤学习烧瓶http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world/page/0#comments

我运行此命令来创建虚拟环境:

python virtualenv.py flask

当我尝试使用项目脚本目录中的python.exe文件启动flask时,它会显示

No module named flask

我的PATH设置为virtualenv安装的python目录。为什么找不到烧瓶?

我最初开始使用官方的Flask快速入门指南,并且能够运行Web服务器,但是使用此虚拟环境安装它无法正常运行。

12 个答案:

答案 0 :(得分:28)

确保您的virtualenv已激活。然后你检查那个virtualenv的PYTHONPATH。是否在该目录中安装了烧瓶包(文件夹)。

如果您不确定是否安装了flask,只需运行以下命令即可查看已安装的所有软件包pip listpip show flask。你看到烧瓶吗?如果没有,您可以运行pip install flask

答案 1 :(得分:4)

如果使用./run.py启动Flask python服务器或类似地使用文件关联启动服务器,也会出现此错误。然后将使用关联中的python命令而不是虚拟环境python命令。请改用python run.py。看看我的run.py如何无辜地假设/ usr / bin / python?

#!/usr/bin/python
# run.py
from app import app
app.run(debug=True,host='0.0.0.0',port=5000)

答案 2 :(得分:2)

确保在激活virtualenv 后运行脚本。在OS X上,您会在每个终端行的开头看到(virtual_env_name)。要做到这一点:

cd到您的virtualenv目录并输入. bin/activate

cd到包含您要在浏览器中启动应用时运行的.py文件的目录

现在输入python file_name.py,对我来说this example

之后文件名为routes.py

答案 3 :(得分:2)

如果端口不可用,也会出现此问题。 尝试在不同的端口上运行。

答案 4 :(得分:1)

首先使用

激活您的虚拟环境
source bin/activate envName

然后尝试再次运行您的命令

答案 5 :(得分:1)

我同时在三个Raspberry Pi设备上遇到了同样的问题;我试着用几个小时把它撞到墙上(通过点子,适应和能力重新安装烧瓶 - 没有欢乐)。

而不是:

pip install flask

我终于尝试过了:

pip install Flask

像魅力一样工作。

答案 6 :(得分:0)

在Windows上,即使您在cmd行中看到(virtual_env_name),也可能未完全激活虚拟环境。取消激活/重新激活,然后重试。

答案 7 :(得分:0)

我在Windows 7上运行Python。我有同样的问题没有名为flask的模块。

我尝试重新安装python,venv但它没有用。

最后我像这样运行

  1. 以通常的方式安装venv
  2. 转到脚本目录并激活
  3. C:\ Python34 \ microb> c:\ Python34 \ microb \ fla \ scripts \ python run.py
  4. 这里微博是我的项目,fla是venv

答案 8 :(得分:0)

如果没有其他帮助,请检查代码是否正确:

from flask import Flask

在发现错误之前,我已经尝试了很多事情。我的代码中有这个:

from Flask import Flask

当我将模块名称的大写字母更改为flask时,一切正常。

答案 9 :(得分:0)

在Python 3.x中

pip3 install flask

对我来说很好。

感谢与问候

答案 10 :(得分:0)

对于在Windows上遇到此问题的用户,已经激活了venv,并且flask安装在正确的目录中。对我来说,我意识到它正在寻找烧瓶,但是文件名为flask.exe。我对其进行了重命名,并且效果很好。

答案 11 :(得分:0)

尝试以下行:

$ python3.7 -m venv env 

$ source env/bin/activate

(env)$ pip install yourpackages

(env)$ python app.py