无法在 python 3.7 中导入 aerospike
Unable to import aerospike in python 3.7
我在使用 pip 下载 aerospike 后尝试导入它,但出现此错误。
我尝试使用自制软件和图形安装程序重新安装 python,但结果是一样的。我可以导入其他包,例如 numpy。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/usr/local/lib/python3.7/site-packages/aerospike.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/lib/python3.7/site-packages/aerospike.cpython-37m-darwin.so
Reason: image not found
Aerospike python 客户端很可能由于缺少 openssl 依赖项而导致导入失败。
我建议安装 openssl
brew install openssl
然后重新安装 python 客户端。
pip install aerospike --force-reinstall
否则,您可以按照 OSX 此处的构建说明进行操作。 https://github.com/aerospike/aerospike-client-python/blob/master/BUILD.md#os-x
希望对您有所帮助。
在 OSX Catalina 上,默认的 openssl 安装存在一些问题。请按照以下步骤操作。
brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
此处有更多详细信息 - https://github.com/kelaberetiv/TagUI/issues/86
这对我有用 - 它是我之前编写的解决方案的组合(但由于我们有其他依赖于 SSL 1.1.1 的东西,我们无法卸载它)。
# install latest version of OpenSSL if not already exist
brew install openssl
# install Aerospike client
pip3 install aerospike
# if aerospike does not import, then install an older version of OpenSSL - 1.0.2t
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
这将提醒:
Warning: openssl 1.1.1f is available and more recent than version 1.0.2t.
但这很好,因为我们需要旧版本才能使用 Aerospike。
然后,我们可以使用 brew 将其设置为较旧的 OpenSSL 版本:
# switch to the older OpenSSL version we installed
brew switch openssl 1.0.2t
Cleaning /usr/local/Cellar/openssl/1.0.2t
Opt link created for /usr/local/Cellar/openssl/1.0.2t
这适用于 Python 3.7.7 和 OS X 10.14.6
P.S:
在某些情况下,这是可行的,无需安装 OpenSSL 1.0.2t,因此您可能也想尝试一下:
# switch to older OpenSSL in 10.14
brew switch openssl 1.0.2s
# switch to older OpenSSL in 10.15
brew switch openssl 1.0.2q
我在使用 pip 下载 aerospike 后尝试导入它,但出现此错误。 我尝试使用自制软件和图形安装程序重新安装 python,但结果是一样的。我可以导入其他包,例如 numpy。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/usr/local/lib/python3.7/site-packages/aerospike.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/lib/python3.7/site-packages/aerospike.cpython-37m-darwin.so
Reason: image not found
Aerospike python 客户端很可能由于缺少 openssl 依赖项而导致导入失败。
我建议安装 openssl
brew install openssl
然后重新安装 python 客户端。
pip install aerospike --force-reinstall
否则,您可以按照 OSX 此处的构建说明进行操作。 https://github.com/aerospike/aerospike-client-python/blob/master/BUILD.md#os-x
希望对您有所帮助。
在 OSX Catalina 上,默认的 openssl 安装存在一些问题。请按照以下步骤操作。
brew update && brew upgrade
brew uninstall openssl; brew uninstall openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
此处有更多详细信息 - https://github.com/kelaberetiv/TagUI/issues/86
这对我有用 - 它是我之前编写的解决方案的组合(但由于我们有其他依赖于 SSL 1.1.1 的东西,我们无法卸载它)。
# install latest version of OpenSSL if not already exist
brew install openssl
# install Aerospike client
pip3 install aerospike
# if aerospike does not import, then install an older version of OpenSSL - 1.0.2t
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
这将提醒:
Warning: openssl 1.1.1f is available and more recent than version 1.0.2t.
但这很好,因为我们需要旧版本才能使用 Aerospike。
然后,我们可以使用 brew 将其设置为较旧的 OpenSSL 版本:
# switch to the older OpenSSL version we installed
brew switch openssl 1.0.2t
Cleaning /usr/local/Cellar/openssl/1.0.2t
Opt link created for /usr/local/Cellar/openssl/1.0.2t
这适用于 Python 3.7.7 和 OS X 10.14.6
P.S:
在某些情况下,这是可行的,无需安装 OpenSSL 1.0.2t,因此您可能也想尝试一下:
# switch to older OpenSSL in 10.14
brew switch openssl 1.0.2s
# switch to older OpenSSL in 10.15
brew switch openssl 1.0.2q