Python 2.7 OpenShift中缺少环境变量

Python 2.7 OpenShift中缺少环境变量,python-2.7,websocket,openshift,Python 2.7,Websocket,Openshift,我正试图在Openshift中设置一个Python 2.7项目。目标是使用Tornado Websockets。我已经尝试了许多示例,但是我一直被示例中显示的一些缺少的环境变量所困扰 我当前的app.py: import imp import os try: zvirtenv = os.path.join(os.environ['OPENSHIFT_PYTHON_DIR'], 'virtenv', 'bin', 'activate_this.

我正试图在Openshift中设置一个Python 2.7项目。目标是使用Tornado Websockets。我已经尝试了许多示例,但是我一直被示例中显示的一些缺少的环境变量所困扰

我当前的app.py:

import imp
import os

try:
   zvirtenv = os.path.join(os.environ['OPENSHIFT_PYTHON_DIR'],
                       'virtenv', 'bin', 'activate_this.py')
                        execfile(zvirtenv, dict(__file__ = zvirtenv) )
except IOError:
   pass

if __name__ == '__main__':
   ip   = os.environ['OPENSHIFT_PYTHON_IP']
   port = int(os.environ['OPENSHIFT_PYTHON_PORT'])
   app = imp.load_source('application', 'main.py')

   app.application.listen(port , ip)
   app.ioloop.IOLoop.instance().start()
我的安装需要:

  install_requires=['tornado', 'requests', 'beautifulsoup4']
这将导致以下错误:

---> Running application from Python script (app.py) ...
Traceback (most recent call last):
  File "app.py", line 14, in <module>
    zvirtenv = os.path.join(os.environ['OPENSHIFT_PYTHON_DIR'],
  File "/opt/app-root/lib64/python2.7/UserDict.py", line 40, in __getitem__
    raise KeyError(key)
KeyError: 'OPENSHIFT_PYTHON_DIR'

有人能帮我吗?

您正在查找使用OpenShift 2时设置的环境变量,但正在使用OpenShift 3。在OpenShift 3下,您不需要激活Python虚拟环境,这是为您完成的。您的app.py应该在所有接口和端口8080上侦听。只要使用默认的Python S2I builder,该地址就不会改变,因此不使用环境变量将其传入。

非常感谢,这样做了