根据此文档,我需要确保我具有1.0.1或更高版本的OpenSSL版本才能连接到Salesforce API 。
根据这个问题,我可以执行以下步骤(已成功完成)
运行时openssl version -a,我得到以下信息:
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",我得到以下信息:
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的方法吗?
我认为这与您使用的Python版本和$PATH变量是一个多部分的问题。
$PATH
首先在终端中使用以下命令检查您在哪里寻找Python:
which python
它应该输出如下内容: /usr/local/bin/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的版本。
python
换一种说法:
正在检查与其他地方不同的openssl
要解决此问题,您可以尝试编辑$PATH变量。
我建议通过编辑类似您的~/.bash_profile文件的方式来做到这一点。您可以添加类似这样的内容以指定要使用的其他Python二进制文件:
~/.bash_profile
export PATH="/usr/local/bin:$PATH"
将其放在.bash_profile文件末尾,然后每当使用bash时,都应在/usr/local/bin目录中查找Python,然后再查找其他位置。请记住,这也可能会影响其他程序寻找Python(或其他二进制文件)的位置。
.bash_profile
/usr/local/bin