对于settings.py中的各种设置(MEDIA_ROOT,TEMPLATE_DIRS),它被指示给出绝对路径。我已经使用mod_wsgi配置了apache。我在名为apache
的文件夹中有一个wsgi脚本,重定向到{{1 }}。
settings.py
(不要误解 - Django是我项目的名称。)
好的我的问题是 - 现在我们已经将我的项目路径导入到wsgi脚本中的系统路径,我在import os
import sys
path = 'D:/Projects/Dan'
if path not in sys.path:
sys.path.append(path )
os.environ['DJANGO_SETTINGS_MODULE'] = 'Django.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
中给出一个相对路径是不是更可行,因为这会使部署如果我错了,请告诉我标准程序,以便我可以将所有路径设置在一个文件中,而不是3个文件(Apache-httpd.conf,mod_wsgi-django.wsgi,django-settings.py)。
答案 0 :(得分:6)
使用:
import os
this_directory = os.path.dirname(__file__)
然后:
absolute_directory = os.path.join(this_directory, 'relative.txt')
然而,鉴于Django包本身就是'django',所以称你的项目为'Django'是不明智的。在不造成混淆的情况下,您不应该依赖差异。简而言之,Python包/模块名称应该根据具体情况而有所不同。您的站点项目目录被视为Python包,因此问题。