一尘不染

如何在Mac上更新OpenSSL?

python

根据此文档,我需要确保我具有1.0.1或更高版本的OpenSSL版本才能连接到Salesforce
API 。

根据这个问题,我可以执行以下步骤(已成功完成)

  1. 酿造更新
  2. 酿造安装openssl
  3. 酿造链接–force openssl

运行时openssl version -a,我得到以下信息:

OpenSSL 1.0.2h  3 May 2016
built on: reproducible build, date unspecified
platform: darwin64-x86_64-cc
options:  bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: /usr/bin/clang -I. -I.. -I../include  -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/opt/local/etc/openssl"

但是,当我运行时python -c "import ssl; print ssl.OPENSSL_VERSION",我得到以下信息:

OpenSSL 0.9.8zh 14 Jan 2016

我从计算机中收到混合信号,但是我的salesforce模块仍然无法正常工作,因此我知道OpenSSL尚未在计算机上完全更新。

我还应该提到我也尝试过:

sudo port upgrade openssl

Port似乎已经工作了,但是当我运行时python -c "import ssl; print ssl.OPENSSL_VERSION",仍然显示我在“
OpenSSL 0.9.8zh”上

还有另一种更新OpenSSL的方法吗?


阅读 470

收藏
2021-01-20

共1个答案

一尘不染

我认为这与您使用的Python版本和$PATH变量是一个多部分的问题。

首先在终端中使用以下命令检查您在哪里寻找Python:

which python

它应该输出如下内容: /usr/local/bin/python

然后检查已设置的路径。

echo $PATH

您可能会看到类似以下内容的信息:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin

问题可能是当您python在终端中输入内容时,与默认值绑定的python版本不是具有最新版openssl的版本。

换一种说法:

openssl version -a

正在检查与其他地方不同的openssl

python -c "import ssl; print ssl.OPENSSL_VERSION"

要解决此问题,您可以尝试编辑$PATH变量。

我建议通过编辑类似您的~/.bash_profile文件的方式来做到这一点。您可以添加类似这样的内容以指定要使用的其他Python二进制文件:

export PATH="/usr/local/bin:$PATH"

将其放在.bash_profile文件末尾,然后每当使用bash时,都应在/usr/local/bin目录中查找Python,然后再查找其他位置。请记住,这也可能会影响其他程序寻找Python(或其他二进制文件)的位置。

2021-01-20