簡體   English   中英

OpenShift Python mongoDB環境變量未設置/無法連接

[英]OpenShift Python mongoDB environment variables not set / can't connect

這是在我的應用程序文件頭中:

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 "<stdin>", line 1, in <module>
  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] (<type 'exceptions.KeyError'>, KeyError('OPENSHIFT_MONGODB_DB_HOST',), <traceback object at 0x7f7bc8367248>)

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))

您可以在此處參考示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM