Python 无法从firebase_admin导入数据库模块
我只是试图将Firebase Admin SDK添加到我的Python脚本中,但由于库的Python脚本中的一个TypeError,我无法导入数据库模块 我安装了库: 我初始化了Firebase管理SDK: 但它打破了:Python 无法从firebase_admin导入数据库模块,python,firebase,firebase-admin,Python,Firebase,Firebase Admin,我只是试图将Firebase Admin SDK添加到我的Python脚本中,但由于库的Python脚本中的一个TypeError,我无法导入数据库模块 我安装了库: 我初始化了Firebase管理SDK: 但它打破了: >>> import firebase_admin >>> from firebase_admin import credentials >>> from firebase_admin import db Traceback
>>> 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'
导入firebase\u管理员
>>>从firebase_管理员导入凭据
>>>从firebase_管理导入数据库
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/anaconda/lib/python3.6/site packages/firebase_admin/db.py”,第33行,在
从firebase\u管理导入\u http\u客户端
文件“/anaconda/lib/python3.6/site packages/firebase\u admin/\u http\u client.py”,第30行,在
提升开启状态=错误,退避系数=0.5)
TypeError:\uuuu init\uuuuuuuu()获取了意外的关键字参数“status”
我查看了有问题的脚本\u http_client.py
,发现它导入了请求
,所以我用pip更新了它,但没有用
不知道这里有什么问题。任何帮助都将不胜感激!谢谢大家! 结果是,在我的
请求
包中潜伏着一个旧版本的urllib3
。把前者从后者身上去掉就行了。感谢并引导我找到解决方案 结果是,在我的请求
包中潜伏着一个旧版本的urllib3
。把前者从后者身上去掉就行了。感谢并引导我找到解决方案 在这里留下一个答案,帮助在谷歌上搜索的人轻松找到它
您可以通过以下方式检查您的版本:
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
。这对我很有用。在这里留下一个答案,帮助在谷歌上搜索的人轻松找到它
您可以通过以下方式检查您的版本:
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
。这对我有效。这对我有效,我只是搜索了urllib3包的位置,然后删除了它。
通过在python解释器中点击以下命令,可以找到包的位置
from requests.packages import urllib3
print (urllib3.__file__)
这对我来说很有效,我只是搜索了urllib3包的位置,然后删除了它。 通过在python解释器中点击以下命令,可以找到包的位置
from requests.packages import urllib3
print (urllib3.__file__)
您的urllib3版本是什么?看起来您的版本的
util.retry.retry
类尚未接受status
参数。也许还可以尝试更新该软件包。@shmee我以前是1.22,根据你的建议升级到1.24.1,但仍然收到相同的错误消息。嗯。。。看到您的程序在anaconda env中运行,并且您使用pip进行升级,我不得不问:您确定您在正确的解释器版本上进行了升级吗?我。。。很确定<代码>要求已经更新:urllib3 in/anaconda/lib/python3.6/site-packages(1.24.1)是的,好的:)请不要介意这个问题。尽管如此,除非我完全错过了这里的内容,否则在\u http\u client
中实例化requests.packages.urllib3.util.retry.retry
时会出现异常。我想知道是否有什么东西把那个环境中的系统路径弄乱了。你能不能运行一个脚本,只执行导入请求;在同一解释器中打印(requests.packages.urllib3.util.retry.\uuuuu file\uuuuuuu)
,并验证它实际上从/anaconda/lib/python3.6/site packages
中的urllib3包导入了模块。您的urllib3版本是什么?看起来您的版本的util.retry.retry
类尚未接受status
参数。也许还可以尝试更新该软件包。@shmee我以前是1.22,根据你的建议升级到1.24.1,但仍然收到相同的错误消息。嗯。。。看到您的程序在anaconda env中运行,并且您使用pip进行升级,我不得不问:您确定您在正确的解释器版本上进行了升级吗?我。。。很确定<代码>要求已经更新:urllib3 in/anaconda/lib/python3.6/site-packages(1.24.1)是的,好的:)请不要介意这个问题。尽管如此,除非我完全错过了这里的内容,否则在\u http\u client
中实例化requests.packages.urllib3.util.retry.retry
时会出现异常。我想知道是否有什么东西把那个环境中的系统路径弄乱了。你能不能运行一个脚本,只执行导入请求;在同一解释器中打印(requests.packages.urllib3.util.retry.\uuuuuu file\uuuuuuuuu)
,并验证它实际上从/anaconda/lib/python3.6/site packages中的urllib3包导入了模块,嗯?现在我想知道一个过时的urllib3包是如何直接出现在请求中的。通常,packages
是一个模块,它执行一些导入向导来本地化第三方软件包。。。哦,好吧:)很酷,你找到了@shmee我不知道,我的环境可能是一场灾难(由于十年来无数次尝试学习各种编程语言)。因此,我不知何故同时使用了pip和anaconda。。。无论如何,非常感谢你的帮助!嗯?现在我想知道一个过时的urllib3包是如何直接出现在请求中的。通常,packages
是一个模块,它执行一些导入向导来本地化第三方软件包。。。哦,好吧:)很酷,你找到了@shmee我不知道,我的环境可能是一场灾难(由于十年来无数次尝试学习各种编程语言)。因此,我不知何故同时使用了pip和anaconda。。。无论如何,非常感谢你的帮助!