'当我运行URL时,没有名为flask'的模块

时间:2015-12-22 18:49:40

标签: python apache flask

我的文件放置在apache共享托管服务器 -

/public_html/cgi-bin
 --- myenv (directory - virtual env)
 --- hello.cgi
 --- myapp.py

.htaccess位于根目录中。

现在,当我激活虚拟环境并运行myapp.py文件 -

python myapp.py

这很好用。我明白了 -

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

但是现在当我尝试在网络浏览器中启动我的页面时,我在日志中显示以下导入错误(在网页上显示其500 - 内部服务器错误) -

 'No module named flask'

请建议我是否需要在.cgi.py文件中的任何位置提供烧瓶包的路径。

flask安装在myenvmyenv/lib/python2.6/site-packages

myapp.py档案:

#!/usr/bin/env python
import sys

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello Ejaz"

if __name__ == "__main__":
    app.run()

hello.cgi档案:

#!/usr/bin/env python

import os
from wsgiref.handlers import CGIHandler
from myapp import app

os.environ['SERVER_NAME'] = "www.mypage.com"
os.environ['SERVER_PORT'] = ""
os.environ['REQUEST_METHOD'] = 'GET'
os.environ['PATH_INFO'] = ""

CGIHandler().run(app)

谢谢。

2 个答案:

答案 0 :(得分:0)

您已在cgi文件的第一行指定了系统python。相反,将它指向你的virtualenv的python可执行文件。

答案 1 :(得分:0)

请参阅此处 - http://www.comfycoder.com/home/how_to_deploy_a_flask_app_in_apache_shared_hosting

将我的hello.cgi更新为此 -

#!/usr/bin/env python

import os
from wsgiref.handlers import CGIHandler
from myapp import app

CGIHandler().run(app)

并在myapp.py -

中添加了这些行
import os
import sys
sys.path.insert(0, '/home/username/public_html/cgi-bin/myenv/lib/python2.6/site-packages') 

工作正常。