这是在我的应用程序文件头中:
import os import sys from cgi import parse_qs, escape import pymongo from pymongo import MongoClient
我已经安装了mongoDB 2.4齿轮,并且正在尝试通过
client = MongoClient('mongodb:$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/')
我得到了错误:
Traceback (most recent call last): File "", line 1, in File "/var/lib/openshift/531b77fd500446980900010d/python/virtenv/lib/python2.7/site-packages/pymongo/mongo_client.py", line 239, in __init__ res = uri_parser.parse_uri(entity, port) File "/var/lib/openshift/531b77fd500446980900010d/python/virtenv/lib/python2.7/site-packages/pymongo/uri_parser.py", line 269, in parse_uri nodes = split_hosts(hosts, default_port=default_port) File "/var/lib/openshift/531b77fd500446980900010d/python/virtenv/lib/python2.7/site-packages/pymongo/uri_parser.py", line 209, in split_hosts nodes.append(parse_host(entity, port)) File "/var/lib/openshift/531b77fd500446980900010d/python/virtenv/lib/python2.7/site-packages/pymongo/uri_parser.py", line 137, in parse_host raise ConfigurationError("Port number must be an integer.") pymongo.errors.ConfigurationError: Port number must be an integer.
好像OPENSHIFT_MONGODB_DB_PORT
没有设置
print OPENSHIFT_MONGODB_DB_PORT --> NameError: name 'OPENSHIFT_MONGODB_DB_PORT' is not defined
与...相同 OPENSHIFT_MONGODB_DB_HOST
建立连接我需要做什么?
更新:
我可以通过硬编码来自rockmongo的信息直接通过客户端连接
client = MongoClient('mongodb://admin:password@[ip addr]:[port]/')
但是当我这样做
client = MongoClient('mongodb:admin:password@%s:%s/' % os.environ['OPENSHIFT_MONGODB_DB_HOST'], os.environ['OPENSHIFT_MONGODB_DB_PORT']))
我懂了
[error] (, KeyError('OPENSHIFT_MONGODB_DB_HOST',), )
asp.. 5
OpenShift连接变量定义为环境变量,不能作为常规Python变量进行访问。因此,您提供的打印语句不起作用,以下应;
import os print os.environ['OPENSHIFT_MONGODB_DB_PORT']
您应该将代码更改为;
client = MongoClient('mongodb:%s:%s/' % (os.environ['OPENSHIFT_MONGODB_DB_HOST'], os.environ['OPENSHIFT_MONGODB_DB_PORT))
您可以在此处参考示例。
OpenShift连接变量定义为环境变量,不能作为常规Python变量进行访问。因此,您提供的打印语句不起作用,以下应;
import os print os.environ['OPENSHIFT_MONGODB_DB_PORT']
您应该将代码更改为;
client = MongoClient('mongodb:%s:%s/' % (os.environ['OPENSHIFT_MONGODB_DB_HOST'], os.environ['OPENSHIFT_MONGODB_DB_PORT))
您可以在此处参考示例。