Ros*_*sGK 3 python django webfaction
我正在使用Django 1.7而不是Python 2.7,并注意到我的生产主机(Webfaction)与开发机器(mac os x)之间的奇怪行为.
在我的开发机器上,当我通过cmds获取当前工作目录时
import os
dirspot = os.getcwd()
print dirspot
Run Code Online (Sandbox Code Playgroud)
我得到manage.py可执行文件的位置.当我在主机(webfaction)机器上执行此操作时,我会得到差异响应,具体取决于Django站点是否正在运行,而不是使用Django shell.
所以我的项目(和manage.py)位于:
/home/ross/webapps/djangoarea/myproj
Run Code Online (Sandbox Code Playgroud)
运行
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
然后我得到上面的os.getcwd()
/home/ross/webapps/djangoarea/myproj
Run Code Online (Sandbox Code Playgroud)
但是,如果我将相同的命令放入views.py并运行我的项目,我会得到
/home/ross/
Run Code Online (Sandbox Code Playgroud)
我猜它可能与运行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
| 归档时间: |
|
| 查看次数: |
5878 次 |
| 最近记录: |