'SnowSQL fails with "The library Security could not be found" after upgrading to mac Big Sur
After upgrading to macOS Big Sur my snowsql scripts all fail with "The Library Security could not be found"
$ 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!
This reminds me of an issue I ran into with the snowflake-connector-python library involving oscrypto library being used instead of openssl when I upgraded to macOS Catalina several months ago, the issue is documented here: https://github.com/snowflakedb/snowflake-connector-python/issues/235
When I first saw the issue today I was running an earlier version of SnowSQL (1.1.something) then I upgraded to 1.2.9 and got the same error. I tried adding the "-o log_level=DEBUG" to the SnowSQL command line but it didn't output any additional information.
Solution 1:[1]
Could you try the following steps?
- Move the User's snowsql directory to a backup: mv ~/.snowsql ~/.snowsql.prebigsur
- Move the SnowSQL application to the trash from the Applications folder.
- Make sure "/Applications/SnowSQL.app" is gone.
- Then download and install the latest SnowSQL from the darwin repo (https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/darwin_x86_64/index.html)
Solution 2:[2]
I was running into the same thing and the only help I can find was this thread and a few unanswered github issues.
For me, I'm using SQLAlchemy to connect to Snowflake. Worked just fine until I upgraded to Big Sur.
After digging through the code, it looks like things were stemming from oscrypto 1.20 for me. It was specifically calling our the _security_cffi.py and around line 239, they were doing something like this:
Security = find_library('Security')
I went to their page and saw that there was a new version 1.21
After downloading it, the code changed to this:
security_path = '/System/Library/Frameworks/Security.framework/Security'
Security = ffi.dlopen(security_path)
Now I'm able to run my queries against snowflake without issue.
Solution 3:[3]
After reading @mwlilson 's answer I tried the following and it seems to have worked. For me the error was arising when I tried to use the dropbox python module.
# Solution
pip uninstall oscrypto
pip install oscrypto
Solution 4:[4]
For me oscrypto==1.2.0 worked on macOS Big Sur 11.5.1
- Like @Gokhan Atil's answer, I installed the latest version of SnowSQL
pip uninstall oscryptopip install oscrypto==1.2.1
Solution 5:[5]
This is what fixed it on mine.
- Download the latest snowsql installation from the snowflake website. snowflake downloads
Run installation
Verify the file $HOME/.snowsql/config contains your database connection settings.
Write the config file to disk even if you made no changes.
After installation, I continued to see the same error until I re-saved the same config file. Perhaps there is a library cache for snowsql that does not refresh until it notices changes in the config? That fixed the problem. (Not sure if the re-installation was absolutely necessary, but it's working now).
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Gokhan Atil |
| Solution 2 | |
| Solution 3 | GeneticsGuy |
| Solution 4 | |
| Solution 5 | ouflak |
