我一直在試圖弄清楚如何一直獲得我的模塊之一的目錄的絕對路徑,以便我可以打開同一目錄中的文件,而不管無論該模塊是直接運行還是從其他地方導入。Django:從views.py中導入模塊的路徑
我只是誤解os.path和_ 文件 _工作,或者是否有一些在Django引起這個問題嗎?
views.py:
def pathtest(request):
return HttpResponse(mymodule.getpath())
mymodule.py:
def getpath():
return os.path.realpath(__file__)
預期輸出:
/home/user/projects/myproject/mymodule/mymodule.py
實際輸出:
/home/user/projects/myproject/views.py
這似乎工作!它給了我上面的「預期輸出」。如果你不介意,能否請你解釋一下爲什麼上面的代碼不能給我我所期望的和這個的作用?早些時候,我嘗試了dirname(abspath(__ file__)),它不起作用,但abspath(dirname(__ file__))卻起作用。概念上有什麼區別?非常感謝。 – dougwt 2012-03-19 22:06:42
根據我的理解,abspath()方法會清除所有相對路徑,併爲您提供乾淨的「absolutized」版本的路徑,其中dirname仍可能包含相對路徑。 – Furbeenator 2012-03-20 00:04:49