Google App Engine Flask 项目 PyCharm - sys.path.insert、virtualenv、站点包

Google App Engine Flask Project with PyCharm - sys.path.insert, virtualenv, site-packages

我有一个 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

前 3 行,尤其是 sys.path.insert,有点难看 - 有没有另一种方法可以使用站点包设置系统路径而无需在代码中以这种方式声明?

我正在使用 virtualenv 以防万一。

删除sys.path.insert

PyCharm --> Preferences --> Project Interpreter --> Click on Gear Icon --> Add Local --> <browse to your virtualenv>/bin/python --> OK

现在,当您 运行 通过右键单击您的项目时 flaskapp.py --> 运行 通过单击向下箭头确保 virtualenv 已附加到它 -->编辑配置 --> 检查 Python interpreter 您之前指定的 virtualenv 是否实际被 PyCharm.

使用

您应该使用 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 答案。