无法从firebase_admin导入数据库模块

时间:2019-02-12 07:14:34

标签: python firebase firebase-admin

我只是试图将Firebase Admin SDK添加到我的Python脚本中,但是由于该库的python脚本之一中的TypeError导致无法导入数据库模块。

我安装了库as instructed

sudo pip install firebase-admin

我初始化了Firebase Admin SDK as instructed

import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

但是坏了:

>>> import firebase_admin
>>> from firebase_admin import credentials
>>> from firebase_admin import db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/anaconda/lib/python3.6/site-packages/firebase_admin/db.py", line 33, in <module>
    from firebase_admin import _http_client
  File "/anaconda/lib/python3.6/site-packages/firebase_admin/_http_client.py", line 30, in <module>
    raise_on_status=False, backoff_factor=0.5)
TypeError: __init__() got an unexpected keyword argument 'status'

我偷看了有问题的脚本_http_client.py,发现它导入了requests,所以我用pip进行了更新,无济于事。

不知道这里可能是什么问题。任何帮助将非常感激!谢谢!

3 个答案:

答案 0 :(得分:1)

结果是,我的urllib3包中潜藏着一个旧版本的requests。从后者中删除前者就可以了。感谢shmeeHiranya Jayathilaka为我提供解决方案!

答案 1 :(得分:1)

在此处留下答案,以帮助正在使用此功能的人轻松找到它。

Link to issue 262 on GitHub

您可以使用以下方法检查您的版本:

import requests
from requests.packages import urllib3
print(urllib3.__version__)
>>>"1.16.1" # my output

您可以检查正在使用的urllib3的位置:

import requests
from requests.packages import urllib3
print(urllib3.__file__)
>>>'...anaconda3/lib/python3.6/site-packages/requests/packages/urllib3/__init__.py'

如果您使用的是Anaconda,则可以实际删除该软件包,也可以只在终端中运行conda update urllib3。那对我有用。

答案 2 :(得分:1)

这对我有用,我只是搜索urllib3软件包的位置,然后将其删除。 您可以通过在python解释器中点击以下命令来找到包的位置

from requests.packages import urllib3
print (urllib3.__file__)