【发布时间】:2014-05-30 12:22:14
【问题描述】:
我已在 Ubuntu 12.04 上配置 Apache 以使用 WSGI 运行我的 Python Flask Web 应用程序。这是 /etc/apache2/sites-enabled/000-default 的一部分:
<VirtualHost *>
WSGIDaemonProcess 3dkit user=3dkit group=3dkit threads=5
WSGIScriptAlias /3dkit /3dkit/kit.wsgi
WSGIPassAuthorization On
<Location /3dkit>
WSGIProcessGroup 3dkit
</Location>
...
这里是/3dkit/kit.wsgi:
import os
import sys
sys.path.insert(0, '/3dkit')
print 'user =', os.environ['USER']
from kit import app as application
打印命令失败并出现异常
KeyError: 'USER'
但终端窗口中的这个命令:
sudo -u 3dkit printenv USER
按预期输出“3dkit”。
不仅仅是这个环境变量。无论我如何尝试设置环境变量,无论是在 /home/3dkit/.profile 中,还是在 /etc/environment 中,或者我能想到的任何其他方式,它都会在我的 WSGI 文件中被忽略。我可以让它工作的唯一方法是显式调用 os.environ 并在 WSGI 文件本身中设置一个环境变量。
谁能告诉我我做错了什么?
【问题讨论】:
-
你是如何设置环境变量的?你
export它是不是可以在外壳之外使用? -
在 /home/3dkit/.profile 的情况下,是的,我使用了导出。在 /etc/environment 的情况下,不,根据help.ubuntu.com/community/EnvironmentVariables。
标签: python flask environment-variables wsgi