Python - 如何在不修改路径的情况下导入库?

时间:2014-01-30 06:44:40

标签: python google-app-engine python-import

任何人都知道在不修改库的导入路径的情况下导入这些库的最简单方法吗?

这是文件夹结构

src/
    main.py
    app.yaml
    index.yaml
    lib/
        flask/
        werkzeug/
        simplejson/
        __init__.py

例如,在main.py中我添加了from lib import flask并获得了

from werkzeug.exceptions import abort
ImportError: No module named werkzeug.exceptions

在main.py和其他库中使用import flask的正确方法是什么。

提前致谢。

enter image description here

main.py:

import os, sys

#libdir = os.path.abspath("lib")
#sys.path.append(libdir)
import webapp2
from flask import Flask
#app = Flask(__name__)

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.response.write('Hello world!')

app = webapp2.WSGIApplication([
    ('/', MainHandler)
], debug=True)

的app.yaml:

- url: /lib
  static_dir: lib

2 个答案:

答案 0 :(得分:3)

您确实需要在路径中添加lib,使用site.addsitedir或操作sys.path。但是,不要在main.py中执行此操作,而是将所有路径和其他全局添加内容放在appengine_config.py中,这是在运行任何代码之前加载的。

请参阅https://developers.google.com/appengine/docs/python/tools/appengineconfig

答案 1 :(得分:1)

尝试在main.py中执行此操作(它可能在lib / init .py中以类似的方式工作,但我没有测试过。

libdir = os.path.abspath("lib")
sys.path.append(libdir)