升级到 mac Big Sur 后,SnowSQL 失败并显示 "The library Security could not be found"
SnowSQL fails with "The library Security could not be found" after upgrading to mac Big Sur
升级到 macOS Big Sur 后,我的 snowsql 脚本全部失败并显示“找不到库安全性”
$ 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!
这让我想起几个月前我升级到 macOS Catalina 时 运行 涉及 oscrypto 库而不是 openssl 的 snowflake-connector-python 库的问题,这个问题记录在这里:https://github.com/snowflakedb/snowflake-connector-python/issues/235
当我今天第一次看到这个问题时,我是 运行 早期版本的 SnowSQL (1.1.something) 然后我升级到 1.2.9 并得到了同样的错误。我尝试将“-o log_level=DEBUG”添加到 SnowSQL 命令行,但它没有输出任何附加信息。
您可以尝试以下步骤吗?
- 将用户的 snowsql 目录移动到备份:
mv ~/.snowsql ~/.snowsql.prebigsur
- 将 SnowSQL 应用程序从“应用程序”文件夹移至回收站。
- 确保“/Applications/SnowSQL.app”已消失。
- 然后从 darwin 存储库 (https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/darwin_x86_64/index.html) 下载并安装最新的 SnowSQL
我 运行 遇到了同样的事情,我唯一能找到的帮助就是这个帖子和一些未解决的 github 问题。
对我来说,我正在使用 SQLAlchemy 连接到 Snowflake。在我升级到 Big Sur 之前工作得很好。
在深入研究代码后,对我来说,事情似乎源于 oscrypto 1.20
。它专门调用我们的 _security_cffi.py
并且在第 239 行附近,他们正在做这样的事情:
Security = find_library('Security')
我去了他们的page,看到有新版本1.21
下载后代码变成这样:
security_path = '/System/Library/Frameworks/Security.framework/Security'
Security = ffi.dlopen(security_path)
现在我可以 运行 我对 snowflake 的查询没有问题。
阅读@mwlilson 的回答后,我尝试了以下方法,它似乎奏效了。对我来说,错误是在我尝试使用 dropbox
python 模块时出现的。
# Solution
pip uninstall oscrypto
pip install oscrypto
对我来说 oscrypto==1.2.0 适用于 macOS Big Sur 11.5.1
- 就像@Gokhan Atil 的回答一样,我安装了最新版本的SnowSQL
pip uninstall oscrypto
pip install oscrypto==1.2.1
这就是我的修复方法。
- 从雪花网站下载最新的 snowsql 安装。
snowflake downloads
运行安装
验证文件 $HOME/.snowsql/config 包含您的数据库连接设置。
将配置文件写入磁盘,即使您没有进行任何更改。
安装后,我继续看到同样的错误,直到 re-saved 相同的配置文件。也许有一个 snowsql 的库缓存在它注意到配置更改之前不会刷新?这解决了问题。 (不确定 re-installation 是否绝对必要,但现在可以使用了)。
升级到 macOS Big Sur 后,我的 snowsql 脚本全部失败并显示“找不到库安全性”
$ 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!
这让我想起几个月前我升级到 macOS Catalina 时 运行 涉及 oscrypto 库而不是 openssl 的 snowflake-connector-python 库的问题,这个问题记录在这里:https://github.com/snowflakedb/snowflake-connector-python/issues/235
当我今天第一次看到这个问题时,我是 运行 早期版本的 SnowSQL (1.1.something) 然后我升级到 1.2.9 并得到了同样的错误。我尝试将“-o log_level=DEBUG”添加到 SnowSQL 命令行,但它没有输出任何附加信息。
您可以尝试以下步骤吗?
- 将用户的 snowsql 目录移动到备份: mv ~/.snowsql ~/.snowsql.prebigsur
- 将 SnowSQL 应用程序从“应用程序”文件夹移至回收站。
- 确保“/Applications/SnowSQL.app”已消失。
- 然后从 darwin 存储库 (https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/darwin_x86_64/index.html) 下载并安装最新的 SnowSQL
我 运行 遇到了同样的事情,我唯一能找到的帮助就是这个帖子和一些未解决的 github 问题。
对我来说,我正在使用 SQLAlchemy 连接到 Snowflake。在我升级到 Big Sur 之前工作得很好。
在深入研究代码后,对我来说,事情似乎源于 oscrypto 1.20
。它专门调用我们的 _security_cffi.py
并且在第 239 行附近,他们正在做这样的事情:
Security = find_library('Security')
我去了他们的page,看到有新版本1.21
下载后代码变成这样:
security_path = '/System/Library/Frameworks/Security.framework/Security'
Security = ffi.dlopen(security_path)
现在我可以 运行 我对 snowflake 的查询没有问题。
阅读@mwlilson 的回答后,我尝试了以下方法,它似乎奏效了。对我来说,错误是在我尝试使用 dropbox
python 模块时出现的。
# Solution
pip uninstall oscrypto
pip install oscrypto
对我来说 oscrypto==1.2.0 适用于 macOS Big Sur 11.5.1
- 就像@Gokhan Atil 的回答一样,我安装了最新版本的SnowSQL
pip uninstall oscrypto
pip install oscrypto==1.2.1
这就是我的修复方法。
- 从雪花网站下载最新的 snowsql 安装。 snowflake downloads
运行安装
验证文件 $HOME/.snowsql/config 包含您的数据库连接设置。
将配置文件写入磁盘,即使您没有进行任何更改。
安装后,我继续看到同样的错误,直到 re-saved 相同的配置文件。也许有一个 snowsql 的库缓存在它注意到配置更改之前不会刷新?这解决了问题。 (不确定 re-installation 是否绝对必要,但现在可以使用了)。