编程语言
首页 > 编程语言> > python – 当前目录(os.getcwd)从Django内部确定如何?

python – 当前目录(os.getcwd)从Django内部确定如何?

作者:互联网

我正在使用Django 1.7而不是Python 2.7,并注意到我的生产主机(Webfaction)与开发机器(mac os x)之间的奇怪行为.

在我的开发机器上,当我通过cmds获取当前工作目录时

import os
dirspot = os.getcwd()
print dirspot

我得到manage.py可执行文件的位置.
当我在主机(webfaction)机器上执行此操作时,我会得到差异响应,具体取决于Django站点是否正在运行,而不是使用Django shell.

所以我的项目(和manage.py)位于:

/home/ross/webapps/djangoarea/myproj

运行

python manage.py shell

然后我得到上面的os.getcwd()

/home/ross/webapps/djangoarea/myproj

但是,如果我将相同的命令放入views.py并运行我的项目,我会得到

/home/ross/

我猜它可能与运行django的apache2和wsgi有关,而不是与manage.py调用它有关.有谁知道如何使这一点保持一致?

提前致谢,
罗斯.

解决方法:

不确定你要做什么,但正如你所发现的那样,os.getcwd()与文件或脚本的位置没有任何关系,它与你执行脚本的位置有关.由于多种原因,这可能不可靠 – 例如,在主机上,您的Web进程作为与脚本所有者完全不同的用户运行.如果要获取与文件相关的内容,可能需要使用os.path.abspath(os.path.dirname(__ file __))或os.path.realpath(path)

https://docs.python.org/3.3/library/os.path.html#os.path.realpath

标签:python,django,webfaction
来源: https://codeday.me/bug/20190824/1711842.html