我有一个Hello World项目,代码如下:
import sys
import os
sys.path.insert(1, os.path.join(os.path.abspath('.'), 'venv/lib/python2.7/site-packages'))
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
前3行是必需的,否则我在控制台
中收到此错误消息from flask import Flask
ImportError: No module named flask
前三行,特别是sys.path.insert,有点难看 - 有没有另外一种方法可以用site-packages设置系统路径,而不必在代码中用这种方式声明它?
我使用virtualenv以防万一。
答案 0 :(得分:2)
您应该使用vendoring机制为App Engine应用程序设置第三方库。无需修改文件中的sys.path
。直接在应用程序根目录中创建 lib 目录,并告诉您的应用程序如何通过appengine_config.py
文件在此目录中查找库。
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
使用带有-t lib标志的pip在此目录中安装库。
$ pip install -t lib [lib-name]
或者
$ pip install -t lib -r requirements.txt
查看this回答。
答案 1 :(得分:1)