我的文件放置在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安装在myenv
:myenv/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)
谢谢。
答案 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')
工作正常。