我一直試圖將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
我一直試圖將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
您需要的lib
目錄添加到您的路徑,而不是markdown
目錄 - 降價是一個包,通過它在目錄中定義
這應該工作:
sys.path.append(os.path.join(os.path.dirname(__file__), 'lib'))
嘿,尼克。感謝你的回答。我做了改變。我是否還需要添加'import'語句來完成這項工作,或者這是唯一需要的行。我嘗試了兩種方法,但仍然收到相同的錯誤:未定義「markdown2」。當我寫入一個導入語句(連同'sys.path.append')時,我得到一個導入錯誤。我究竟做錯了什麼? – Prakhar
我有這個查詢 - 我是否需要使用整個庫文件夾,或者我可以使用'markdown2.py'文件(在這種情況下它的工作正常)。我是python的新手,我不知道庫中每個文件夾的用途。我應該包含一切還是隻包含一個特定的文件?非常感謝! – Prakhar
@Prakhar我特別不熟悉Markdown。一般來說,如果目錄有一個'__init __。py'文件,它是一個包,你應該包含它。這聽起來像降價只是一個模塊,在這種情況下,你可以直接將它包括在根目錄中,不需要路徑操作。是的,你總是需要導入語句 - 「sys.path」操作只是爲了確保Python能夠找到模塊。 –
我用markdown2用一個簡單的導入:
import lib.markdown
如果庫在任何地方使用相對導入,這不起作用 - 無論如何,這通常是一個壞主意。 –
我不認爲這是標準的圖書館之一。 您需要在應用程序文件夾中包含其副本 - 否則在部署時它將不可用。
之後,您不需要修改路徑,只需將其導入相對於應用程序根文件夾的正確路徑。
例如:
如果您的應用程序是在 /家庭/ MYAPP
您可能希望將markdown2複製到 /家庭/ MyApp的/ lib目錄/ markdown2
在這種情況下你'd使用「import lib.markdown2」。
那是真的。反斜線?或者是一個錯字? –