我只是试图将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进行了更新,无济于事。
不知道这里可能是什么问题。任何帮助将非常感激!谢谢!
答案 0 :(得分:1)
结果是,我的urllib3
包中潜藏着一个旧版本的requests
。从后者中删除前者就可以了。感谢shmee和Hiranya Jayathilaka为我提供解决方案!
答案 1 :(得分:1)
在此处留下答案,以帮助正在使用此功能的人轻松找到它。
您可以使用以下方法检查您的版本:
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__)