我一直在试图弄清楚如何一直获得我的模块之一的目录的绝对路径,以便我可以打开同一目录中的文件,而不管无论该模块是直接运行还是从其他地方导入。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