任何人都知道在不修改库的导入路径的情况下导入这些库的最简单方法吗?
这是文件夹结构
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的正确方法是什么。
提前致谢。
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
答案 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)