2012-05-03 152 views
0

我一直試圖將Markdown2庫添加到我的GAE應用程序,但它一直拋出ImportError。這是我有:將庫添加到Google App Engine項目

sys.path.append(os.path.join(os.path.dirname(__file__), "lib\markdown2") 

,如果我現在做的

html = markdown2.markdown("*boo*") #throws an error: markdown2 not defined 
+0

那是真的。反斜線?或者是一個錯字? –

回答

2

您需要的lib目錄添加到您的路徑,而不是markdown目錄 - 降價是一個包,通過它在目錄中定義

這應該工作:

sys.path.append(os.path.join(os.path.dirname(__file__), 'lib')) 
+0

嘿,尼克。感謝你的回答。我做了改變。我是否還需要添加'import'語句來完成這項工作,或者這是唯一需要的行。我嘗試了兩種方法,但仍然收到相同的錯誤:未定義「markdown2」。當我寫入一個導入語句(連同'sys.path.append')時,我得到一個導入錯誤。我究竟做錯了什麼? – Prakhar

+0

我有這個查詢 - 我是否需要使用整個庫文件夾,或者我可以使用'markdown2.py'文件(在這種情況下它的工作正常)。我是python的新手,我不知道庫中每個文件夾的用途。我應該包含一切還是隻包含一個特定的文件?非常感謝! – Prakhar

+0

@Prakhar我特別不熟悉Markdown。一般來說,如果目錄有一個'__init __。py'文件,它是一個包,你應該包含它。這聽起來像降價只是一個模塊,在這種情況下,你可以直接將它包括在根目錄中,不需要路徑操作。是的,你總是需要導入語句 - 「sys.path」操作只是爲了確保Python能夠找到模塊。 –

1

我用markdown2用一個簡單的導入:

import lib.markdown 
+0

如果庫在任何地方使用相對導入,這不起作用 - 無論如何,這通常是一個壞主意。 –

0

我不認爲這是標準的圖書館之一。 您需要在應用程序文件夾中包含其副本 - 否則在部署時它將不可用。

之後,您不需要修改路徑,只需將其導入相對於應用程序根文件夾的正確路徑。

例如:

如果您的應用程序是在 /家庭/ MYAPP

您可能希望將markdown2複製到 /家庭/ MyApp的/ lib目錄/ markdown2

在這種情況下你'd使用「import lib.markdown2」。

相關問題