我有我的GAE項目目錄結構如下:使庫文件夾可見在不同的目錄/子目錄所有的Python腳本與GAE項目目錄
項目:
- 庫:
- lib1.py
- LIB2/x.py
- LIB2/y.py
個
- 應用:
- APP1/app1.py
- APP 2/app2.py
- APP 2/async.py
如何讓我的庫文件夾可見於任何應用程序那將永遠在應用程序目錄和它的子目錄中創建?
我有我的GAE項目目錄結構如下:使庫文件夾可見在不同的目錄/子目錄所有的Python腳本與GAE項目目錄
項目:
如何讓我的庫文件夾可見於任何應用程序那將永遠在應用程序目錄和它的子目錄中創建?
PYTHONPATH指定一系列文件夾來開始搜索導入的模塊。
GAE將包含app.yaml的文件夾添加到您的PYTHONPATH中。
所以假設的app.yaml是(包含「庫」和「應用程序」,即文件夾),那麼任何應用程式,可以導入相對於那裏結構的根......
from library import lib1
from library/lib2 import x
或者可以將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()
在這種情況下,你的所有導入的庫預期行爲。
請注意,通過不調整路徑,您可能會在許多庫中發生隨機破壞。許多庫使用絕對導入,因此這些庫將無法正確導入其子組件。還要注意,有一個語法錯誤,'/'應該是'。'。 – 2012-02-21 16:14:37