【发布时间】:2011-01-24 13:09:23
【问题描述】:
可能重复:
In Python, how can I test if I'm in Google App Engine SDK?
是否有一个环境标志可以判断我的代码是在生产服务器上还是在开发服务器上运行?
我希望能够使用 if 语句根据这个标志做一些不同的事情。
(具体情况:我要读取的文本文件中的换行符在两种环境中的处理方式不同。)
【问题讨论】:
可能重复:
In Python, how can I test if I'm in Google App Engine SDK?
是否有一个环境标志可以判断我的代码是在生产服务器上还是在开发服务器上运行?
我希望能够使用 if 语句根据这个标志做一些不同的事情。
(具体情况:我要读取的文本文件中的换行符在两种环境中的处理方式不同。)
【问题讨论】:
if os.environ.get('SERVER_SOFTWARE','').startswith('Development'):
DEBUG = True
logging.debug("[*] Debug info activated")
对于 Google App Engine,由于我被告知您无法导入套接字,因此您可能可以使用该事实来确定您是否在 GAE 上运行。这个解决方案不是 100% 万无一失,但它应该做你想做的事。把它放在 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'
【讨论】: