在 Apple Silicon/M1 上安装 python firebase-admin 失败,grpico 失败 安装问题我的设置:

问题描述

python firebase admin SDK 未安装在 Apple Silicon/M1 上。我在这里和 Github 上的其他帖子中尝试过修复,但没有奏效。我不清楚他们是否为任何人工作。

安装问题

命令 pip install firebase-admin 在尝试 grpico 包的安装脚本时失败,这是 firebase 的一个依赖项。

我已尝试使用 python 3.8.2、3.9.4 和 3.9.5 进行安装。所有版本都失败了。我已经在 venv 和全球范围内尝试过,但都失败了。

我对目前发生的事情的理解是:

  1. grpico 是 firebase-admin(版本 5.0.0)的依赖项,因此 pip install firebase-admin 将尝试安装 grpico(版本 1.38.0)
  2. grpico 仅针对 x86 编译,因此在尝试 grpico 的设置步骤后,某些东西(可能是 pip)开始运行一堆 clang 命令,尝试为 arm 编译一个版本。
  3. 编译的某些部分失败并输出一个看起来很疯狂的错误
ERROR: Command errored out with exit status 1: /Users/brown/Developer/parse-tools/env/bin/python -u -c 'import io,os,sys,setuptools,tokenize; sys.argv[0] ...

我的设置:

  • 大苏尔 11.4
  • 在 venv 中安装 Python 3.9.5(与自制软件一起安装)
  • pip 21.1.3
  • firebase-admin 5.0.0
  • grpico 1.38.0

如果有人有一个有效的修复程序,请解释它是如何工作的。我不太喜欢将随机命令粘贴到终端而不了解它们的作用。

解决方法

成功 - 简单而神秘

在阅读了关于如何安装 grpcio 的所有疯狂指南后,我只需要两步就可以让它工作。

  1. 设置 2 个环境变量以告诉设置脚本执行不同的操作。在终端中运行以下命令:

export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1

export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1

这些 ENV 变量有什么作用?谁知道。根本没有人费心解释或交流这个问题。经典。

  1. 运行pip3 install firebase-admin。这对我有用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...