我在Raspberry Pi上启动一个简单的Python Flask应用程序时遇到了麻烦。
我用virtualenvwrapper创建了一个virtualenv,它似乎正在工作。当我运行pip list
时,我得到以下输出。
argparse (1.2.1)
Flask (0.10.1)
gunicorn (18.0)
itsdangerous (0.24)
Jinja2 (2.7.2)
MarkupSafe (0.21)
pip (1.5.4)
requests (2.2.1)
setuptools (2.2)
Werkzeug (0.9.4)
wsgiref (0.1.2)
如你所见
我在simple.py
中有以下代码。
import os
from flask import Flask
from flask import request
import requests
app = Flask(__name__)
app.run(host='0.0.0.0', port=int("80"), debug=True)
@app.route('/hello')
def hello():
return 'Hello world!'
当我在Raspberry Pi上运行sudo python simple.py
时,我收到以下错误。
Traceback (most recent call last):
File "simple.py", line 2, in <module>
from flask import Flask
ImportError: No module named flask
据我所知,Flask实际安装在我的virtualenv中。
答案 0 :(得分:4)
当您将其作为sudo
运行时,不再使用virtualenvs python和其他变量。您可以通过运行sudo pip freeze
或sudo pip list
并分别将输出与pip freeze
或list
进行比较来轻松证明这一点。
你有(至少)两个选择:
sudo
sudo /path/to/virtualenv/bin/python simply.py
并且一切都应该正常工作。在virtualenvs中将supervisord配置与不同的python版本组合时,我经常使用第二个(减去sudo
),例如在部署flask应用程序时。像魅力一样。