0

我正在使用两台不同的机器,Windows 和 Mac Os X 处理 Django 项目。我通过 Dropbox 同步了所有内容。问题是 settings.py 中的一些设置是单个字符串(例如 MEDIA_ROOT 或 STATIC_ROOT)而不是元组。这意味着我可以为两个操作系统中的一个设置正确的路径,比如说 STATIC_ROOT。在另一个当然它不会工作。

我想知道是否存在一种方法来识别 OS python 正在运行并根据它通过条件选择正确的设置。

4

2 回答 2

6

settings.py 文件就是 python,所以你可以很容易地根据平台切换语句。使用platform模块

import platform

if platform.system() == 'Darwin':
    MEDIA_ROOT = 'something'
else:
    MEDIA_ROOT = 'somethingelse'
于 2012-09-04T13:49:39.067 回答
1

您不应该首先设置绝对路径。使用类似os.path.dirname(__file__)获取 settings.py 所在的目录,然后将其与特定路径部分结合起来,例如:

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')

然后,您在哪个平台上运行不再重要。FWIW,实际存储基本路径是典型的,因为它经常需要,例如:

PROJECT_ROOT = os.path.dirname(__file__)
...
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
于 2012-09-04T14:21:32.410 回答