我的代码如何判断是在谷歌服务器还是本地开发服务器上运行?

5 投票
2 回答
3106 浏览
提问于 2025-04-16 10:31

可能重复的问题:
在Python中,我怎么能测试我的代码是否在Google App Engine SDK中运行?

有没有什么环境标志可以告诉我我的代码是在生产环境中运行,还是在开发服务器上运行?

我想用一个if语句,根据这个标志做不同的事情。

(具体情况:我想读取的文本文件中的换行符在这两种环境中处理方式不同。)

2 个回答

1

对于Google App Engine(GAE),有人告诉我你不能导入socket这个模块,所以你可以利用这个特点来判断你的程序是否在GAE上运行。这个方法不是百分之百可靠,但应该能满足你的需求。把这个放在settings.py文件里。

try:
    import socket
except ImportError:
    DEBUG = TRUE

如果你在使用Django但不是在GAE上,可以用这个方法。把'devserver'改成你开发服务器的主机名。

import socket
if socket.gethostname() == 'devserver':
    DEBUG = TRUE

然后在你代码中需要检查DEBUG变量的地方,

from django.conf import settings

if settings.DEBUG:
    newline = '\n'
17
if os.environ.get('SERVER_SOFTWARE','').startswith('Development'):
    DEBUG = True
    logging.debug("[*] Debug info activated")

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答