如何解决Stata 没有看到 ODBC 连接所需的环境变量
我使用 Simba ODBC 驱动程序 (2.3.2) 从我的 macOS 笔记本电脑将 Stata 连接到 BigQuery。我最近升级到大苏尔 (11.2.1) 并失去了执行此操作的能力。
我正在使用 iODBC,并且能够成功测试 DSN。我还能够让一切在 macOS 10.15.7 中正常运行(在另一台机器上)。
问题似乎是 Stata 没有看到我根据驱动程序配置说明在 .bash_profile 配置文件中定义的 DYLD_LIBRARY_PATH 环境变量。
在 Stata 中,我收到此错误:
. odbc list
The ODBC file libiodbc.dylib could not be found on this system.
Setting the unix LD_LIBRARY_PATH environment variable may correct this error.
r(680);
我可以在 bash 中进行设置:
$ echo $DYLD_LIBRARY_PATH
:/usr/lib/:/usr/local/
但这似乎不起作用,因为:
$ printenv | grep 'DYLD'
是空的。我怀疑 Big Sur 中的某些东西阻止了这个环境变量的设置。
很高兴尝试任何方法来解决这个问题。
解决方法
要解决此问题,您需要禁用 SIP,这样可以避免在不发出警告的情况下定义 $DYLD_LIBRARY_PATH
环境变量。
禁用 SIP:
- 在计算机关闭后按住 Command(⌘)-R 键以恢复模式重新启动计算机。按下该按钮,直到您看到 Apple 图标和进度条。
- 从“实用工具”菜单中,选择“终端”。
- 在提示符下,键入以下命令,然后按回车键:
csrutil disable
- 终端应显示 SIP 已禁用的消息。
- 从 Apple 菜单中,选择重新启动。
现在您需要定义一个环境变量,该变量指向带有 libiodbc.dylib 的文件夹。要找出该文件夹的位置,请在终端中输入:
find / -name libiodbc.dylib 2>&1 | grep -v "find: "
使用您喜欢的文本编辑器(如 pico、emacs 或 vi),您需要编辑您的 .zshenv 文件。使用
打开此文件(如果不存在则创建它)pico ~/.zshenv
使用上面的第一个文件夹,通过在文件中键入以下内容来定义环境变量:
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:<FOLDER-PATH-HERE>
保存并退出文本编辑器。
要将更改应用到当前 shell,请键入 source .zshenv
。
这应该能让 Stata 和 BQ 再次发挥出色。
zsh 是 Catalina 开头的默认 shell,所以如果你使用另一个 shell,你应该相应地修改一些东西。我自己使用 bash,但我希望我对 zsh 的翻译有效。
您可能需要从命令行启动 Stata 才能使其完全工作。 这是上面修复后命令的输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。