Невозможно импортировать аэроспайк в python 3,7 - PullRequest
2 голосов
/ 20 марта 2020

Я пытался импортировать аэроспайк после загрузки его с помощью pip, и я получаю эту ошибку. Я попытался переустановить python, используя homebrew и графический установщик, но результат тот же. Я могу импортировать другие пакеты, такие как 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

Ответы [ 3 ]

6 голосов
/ 20 марта 2020

Клиент 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

Надеюсь, это поможет.

4 голосов
/ 21 марта 2020

на 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

0 голосов
/ 07 апреля 2020

Это сработало для меня - это комбинация решений, написанных до меня (но поскольку у нас были другие вещи, зависящие от 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

PS:
в некоторых случаях это работало, без необходимости устанавливать 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
...