【发布时间】:2012-02-19 07:49:51
【问题描述】:
我的 GAE 项目有以下目录结构:
项目:
- 库:
- lib1.py
- lib2/x.py
- lib2/y.py
- 应用程序:
- app1/app1.py
- app2/app2.py
- app2/async.py
如何使库文件夹对将在应用程序目录及其子目录中创建的任何应用程序可见?
【问题讨论】:
我的 GAE 项目有以下目录结构:
项目:
如何使库文件夹对将在应用程序目录及其子目录中创建的任何应用程序可见?
【问题讨论】:
或者,可以将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 文件夹导入库的每个文件中,在导入语句之前添加以下代码:
from lib import add_lib_path
add_lib_path()
在这种情况下,您导入的所有库都会按预期运行。
【讨论】:
PYTHONPATH 指定一系列文件夹以开始搜索导入的模块。
GAE 将包含 app.yaml 的文件夹添加到您的 PYTHONPATH。
因此,假设 app.yaml 位于该结构的根目录(即包含“库”和“应用程序”的文件夹),那么您的任何应用都可以相对于那里导入...
from library import lib1
from library/lib2 import x
【讨论】: