【发布时间】:2023-01-31 13:51:43
【问题描述】:
我正在做一个同事交给我的项目。拉取存储库后我无法运行,出现错误
Exception has occurred: ConfigurationError
None of DNS query names exist: _mongodb._tcp.stage.xxxx.mongodb.net., _mongodb._tcp.stage.xxxx.mongodb.net.xxxx.com., _mongodb._tcp.stage.xxxx.mongodb.net.hsd1.tx.comcast.net., _mongodb._tcp.stage.xxxx.mongodb.net.tx.comcast.net., _mongodb._tcp.stage.xxxx.mongodb.net.comcast.net.
奇怪的是,这个回购协议对我的同事来说工作得很好。他有相同的 python 版本,相同的依赖项/等等,没有问题。下面是requirements.txt
fastapi==0.65.2
uvicorn==0.11.7
gunicorn==20.0.4
elastic-apm==5.8.0
pymongo[srv]==3.12.0
pydantic==1.7.4
singleton-decorator==1.0.0
requests==2.27.1
requests-oauthlib==1.3.1
oauthlib==3.2.0
python-multipart==0.0.5
cachetools==5.0.0
pytz==2022.1
python-dotenv==0.14.0
我正在使用 Python 3.8.6,也尝试使用 3.9.10 但同样的问题。
这正是我出错的地方。
@singleton
class MongoDB:
"""MongoDB Class"""
def __init__(self, config: MongoDbConfig):
"""Initial MongoDB Connection on collection level"""
_uri = "mongodb+srv://{username}:{password}@{host}/{db}?authSource=admin&replicaSet={replica_set}&readPreference=primary&connectTimeoutMS={timeout}&authMechanism=SCRAM-SHA-1".format(
username=config.username,
password=config.password,
host=config.host,
db=config.db,
replica_set=config.replicate_set,
timeout=1000,
maxPoolSize=config.max_pool,
)
self.client = MongoClient(_uri)
当我安装 dnspython==2.2.1 时,我的错误减少到
The DNS query name does not exist: _mongodb._tcp.stage.XXXX.mongodb.net.
我的环境变量和系统变量与我的同事完全一致。我们目前都在远程工作。我尝试了 google dns 修复,但它似乎没有用。关于我应该如何解决这个问题的任何建议/提示。我完全迷路了。
【问题讨论】:
标签: python mongodb dns pymongo