使用PyCharm的Google App Engine Flask项目 - sys.path.insert,virtualenv,site-packages

时间:2016-04-02 19:27:34

标签: python google-app-engine flask virtualenv pycharm

我有一个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以防万一。

2 个答案:

答案 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)

删除sys.path.insert

  

PyCharm - &gt;偏好 - &gt;项目口译员 - &gt;点击齿轮图标 - &gt;   添加本地 - &gt; <browse to your virtualenv> / bin / python - &gt;行

现在,当您通过右键单击flaskapp.py来运行项目时,&gt;单击向下箭头 - >运行,确保将virtualenv附加到它上面。编辑配置 - &gt;检查Python interpreter您之前指定的virtualenv实际上是否由PyCharm使用。

enter image description here enter image description here