gpt4 book ai didi

python - Django 中的当前目录 (os.getcwd) 如何确定?

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:33 24 4
gpt4 key购买 nike

我在 Python 2.7 上使用 Django 1.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 中的当前目录 (os.getcwd) 如何确定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28218174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com