5 votes

SnowSQL échoue avec "The library Security could not be found" après la mise à jour vers mac Big Sur

Après la mise à jour vers macOS Big Sur, mes scripts snowsql échouent tous avec "La bibliothèque Security n'a pas pu être trouvée".

$ snowsql -q "select 1 x"
User: me
Password: XXX
The library Security could not be found
If the error message is unclear, enable logging using -o log_level=DEBUG and see the log to find out the cause. Contact support for further help.
Goodbye!

Cela me rappelle un problème que j'ai rencontré avec la bibliothèque snowflake-connector-python impliquant l'utilisation de la bibliothèque oscrypto au lieu d'openssl lorsque j'ai mis à niveau vers macOS Catalina il y a plusieurs mois, le problème est documenté ici : https://github.com/snowflakedb/snowflake-connector-python/issues/235

Lorsque j'ai constaté le problème aujourd'hui, j'utilisais une version antérieure de SnowSQL (1.1.quelque chose), puis j'ai effectué une mise à jour vers la version 1.2.9 et j'ai obtenu la même erreur. J'ai essayé d'ajouter "-o log_level=DEBUG" à la ligne de commande de SnowSQL mais cela n'a pas donné d'informations supplémentaires.

5voto

mwilson Points 2567

J'ai rencontré le même problème et la seule aide que j'ai pu trouver était ce fil de discussion et quelques problèmes non résolus sur Github.

Pour ma part, j'utilise SQLAlchemy pour me connecter à Snowflake. Cela fonctionnait très bien jusqu'à ce que je passe à Big Sur.

Après avoir creusé dans le code, il semble que les choses proviennent de oscrypto 1.20 pour moi. C'était un appel spécifique à notre _security_cffi.py et autour de la ligne 239, ils faisaient quelque chose comme ça :

Security = find_library('Security')

Je suis allé à leur page et a vu qu'il y avait une nouvelle version 1.21

Après l'avoir téléchargé, le code s'est transformé en ceci :

security_path = '/System/Library/Frameworks/Security.framework/Security'

Security = ffi.dlopen(security_path)

Maintenant, je suis capable d'exécuter mes requêtes contre snowflake sans problème.

3voto

Gokhan Atil Points 3762

Pourriez-vous essayer les étapes suivantes ?

3voto

GeneticsGuy Points 58

Après avoir lu la réponse de @mwlilson, j'ai essayé ce qui suit et cela semble avoir fonctionné. Pour moi, l'erreur est survenue lorsque j'ai essayé d'utiliser la fonction dropbox module python.

# Solution
pip uninstall oscrypto
pip install oscrypto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X