使用GAE项目目录使库文件夹对不同目录/子目录中的所有python脚本可见

时间:2012-02-19 07:49:52

标签: python google-app-engine

我的GAE项目有以下目录结构:

项目:

  • 库:
    • lib1.py
    • LIB2 / x.py
    • LIB2 / y.py
  • 应用:
    • APP1 / app1.py
    • APP2 / app2.py
    • APP2 / async.py

如何让库文件夹对应用程序目录及其子目录中创建的任何应用程序可见?

2 个答案:

答案 0 :(得分:3)

或者,可以将library目录添加到sys.path

在库文件夹中创建__init__.py

import os
import sys

def add_lib_path():
    lib_directory = os.path.dirname(os.path.abspath(__file__))
    if lib_directory not in sys.path:
       sys.path.insert(0, lib_directory)

在从library文件夹导入库的每个文件中,在import语句之前添加此代码:

from lib import add_lib_path
add_lib_path()

在这种情况下,所有导入的库都将按预期运行。

答案 1 :(得分:0)

PYTHONPATH指定一系列文件夹以开始搜索导入的模块。

GAE将包含app.yaml的文件夹添加到您的PYTHONPATH。

假设app.yaml位于该结构的根目录(即包含“library”和“apps”的文件夹),那么您的任何应用都可以相对于那里导入...

  from library import lib1

  from library/lib2 import x