安装多个需要不同LDFLAGS/CPPFLAGS的python包(macOS Big Sur Apple Silicon



从requirements.txt文件安装python requirements时,有几个包需要LDFLAGS/CPPFLAGS中的不同值。首先,我在安装mysql-client时得到了这个:ld: library not found for -lzstd我通过像这样运行pip安装来解决这个问题:

CPPFLAGS="-I/opt/homebrew/include" LDFLAGS="-L/opt/homebrew/lib" pip install mysqlclient

than,我在安装加密时遇到了这个问题:

build/temp.macosx-10.14-arm64-3.8/_openssl.c:575:10: fatal error: 'openssl/opensslv.h' file not found
#include <openssl/opensslv.h>

通过这样安装来解决:

CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include" LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib" pip install cryptography

我的问题是——这是怎么回事?我想在我的。zshrc中保留LDFLAGS/CPPFLAGS值,但似乎每个包我都需要不同的值??在我的旧mac上工作时,我记得值是

export LDFLAGS="-L/opt/homebrew/opt/mysql-client/lib"
export CPPFLAGS="-I/opt/homebrew/opt/mysql-client/include"

是在你安装完mysql-client后,brew给你的建议值。

只要它们不相互冲突,您可以在其中放置多个目录,例如

LDFLAGS='-L/opt/foo/lib -L/usr/local/bar/lib'

,同样适用于CPPFLAGS。

然而,就我个人而言,我会避免将LDFLAGS和CPPFLAGS放在。zshrc中-正如您已经发现的那样,所需的值通常取决于您正在编译的东西,并且全局设置它们(然后不可避免地忘记它们)可能会在将来的某个时候引起混乱。

最新更新