Python ';没有名为flask';的模块;,当我浏览URL时
我的文件如下所示放置在apache共享托管服务器中-Python ';没有名为flask';的模块;,当我浏览URL时,python,apache,flask,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) 但是
/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)
但是现在,当我尝试在web浏览器中启动我的页面时,我在日志中得到下面的导入错误(在web页面上是500-内部服务器错误)-
请建议我是否需要在.cgi
或.py
文件中的任何位置提供烧瓶包的路径
烧瓶安装在myenv
:myenv/lib/python2.6/站点软件包中
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()
#!/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)
hello.cgi
文件:
#!/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()
#!/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)
谢谢。您已经在
cgi
文件的第一行指定了系统python。相反,请将其指向virtualenv的python可执行文件。请参阅此处-
将我的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')
它工作正常。我的虚拟环境中没有安装python。我只是在虚拟环境中安装了flask和sqlalchemy。它是否仍然不起作用?