Firebase import module fails with ModuleNotFoundError: No module named 'Crypto'

Firebase import module fails with ModuleNotFoundError: No module named 'Crypto'

我正在尝试启动我编写的脚本,该脚本应该从 firebase 数据库读取数据,但它抛出以下错误:

Traceback (most recent call last):
  File "myScript.py", line 8, in <module>
    from firebase import Firebase
  File "/Users/georgeoprea/Library/Python/3.8/lib/python/site-packages/firebase/__init__.py", line 20, in <module>
    from Crypto.PublicKey import RSA
ModuleNotFoundError: No module named 'Crypto'

我曾尝试通过以下方式安装 Crypto:

pip3 install Crypto
pip3 install pycryptodome

当我 运行 pip3 show Crypto 我得到以下输出:

Name: crypto
Version: 1.4.1
Summary: Simple symmetric GPG file encryption and decryption
Home-page: https://github.com/chrissimpkins/crypto
Author: Christopher Simpkins
Author-email: git.simpkins@gmail.com
License: MIT license
Location: /Users/georgeoprea/Library/Python/3.8/lib/python/site-packages
Requires: Naked, shellescape
Required-by: 

这是我在 myScript.py 中的进口清单:

from bs4 import BeautifulSoup
import time
import smtplib
from datetime import datetime
import json
import random
from email.message import EmailMessage
from firebase import Firebase

OS 信息:macOS 12.1 运行宁 M1 Pro

如何让我的脚本识别 Crypto 模块?

这可能与有关。

/e: 好的,既然您使用的是 this firebase package,我希望能帮到您。 首先,不是 运行 是包的错。虽然它依赖于许多外部包,但它定义了 none 个。 这是我在干净的虚拟环境中必须做的才能做到 from firebase import Firebase:

pip install sseclient python_jwt gcloud pycryptodome requests-toolbelt

Here 是我在干净的环境中得到的 requirements.txt。请注意,这仅用于从包中导入单个 class。仍然可能隐藏在某处的其他依赖项,等待抛出异常。

我鼓励您就此问题向开发者提供反馈。更好的是,自己解决这个问题并打开一个 Pull Request。您可能会帮助其他人解决同样的问题。

我找到了解决方法。我只是使用另一个模块从 firebase 数据库中读取。我没有使用 firebase,而是使用 firebase documentation 中提到的 firebase_adminfirebase_admin 不使用 Crypto,因此从这个角度来看没有更多问题。但是我不得不稍微改变一下我检索和写入数据的方式。