2009-01-13 32 views
3

我正在編寫一個GAE應用程序,並對以下問題存在一些困難。Google App Engine - 導入我自己的源代碼模塊(多個文件)

我創建了多個python文件(比如a.py和b.py),它們都存儲在同一個文件夾中。我可以通過將URL映射到它們(使用app.yaml)來調用a.py或b.py中的代碼。我沒有想到如何做的是將代碼從一個導入到另一箇中。

任何人都可以幫助我的語法和/或此處需要的任何配置嗎?舉例來說,我的感覺是,我可以通過發出以下聲明a.py

import b 

我並沒有用這種方法取得任何成功包括從文件a.py b.py下的代碼。具體而言,我收到此錯誤:

ImportError: No module named b 

有什麼建議嗎?

感謝,

馬特

回答

8

你試過導入,如果你是在頂層開始?像

 
import modules.b 
+0

謝謝。那訣竅 – Matty 2009-01-13 03:25:47

2

如果文件a.py和b.py不在,一定要包括在sys.path各軌跡。

import sys 
sys.path.append(r"/parent/of/module/b") 
1

注意,與GAE通常的模式是不是有每一個app.yaml中獨立地映射,而是有一個具有映射的所有(或幾乎靜態的和特殊)的URL一個「處理」腳本並且讓該腳本導入a和b並使用它們定義的處理程序。

+0

這種模式是否是最佳做法?看起來這樣會使每個請求都佔用相同數量的資源。 – 2009-02-11 22:44:58

1

如@toby所述,必須將其導入,就好像從頂層目錄導入一樣,並且必須將文件名爲init.py的文件放在該文件夾中。

相關問題