使用 easy_install 安装模块后正确设置 LD_LIBRARY_PATH
Correctly setting LD_LIBRARY_PATH after installing a module with easy_install
我已经通过 运行 easy_install path/to/egg
安装了 pyodbc
Python 模块。该模块使用本机代码。输出表明成功。
然而,当尝试 import pyodbc
时,出现错误:cannot open shared object file
。
对该站点的研究表明,Python 在环境变量 LD_LIBRARY_PATH
指定的路径中查找本机库。所以我应该将它设置为指向 easy_install
在安装过程中放置本机文件的路径。
但是,我找不到这个路径。我查看了 /usr/lib
、/usr/lib64
和其他一些有意义的目录(我目前不在工作的 Linux 机器上,所以很抱歉我不记得了我查看的其他目录)。
请说明在哪里可以找到这个路径。
如解释的那样here:
您必须将 LD_LIBRARY_PATH
设置为 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
(在您的 .profile 或 .bashrc 或 .zshrc 中),它指向 unixodbc
和 freetds
共享库的位置如果您通过系统的包管理器安装它们,则已安装。
即如果你在 ubuntu,输入 apt-get install freedts unixodbc
pyodbc 只是 C 库的包装器,因此有此要求。
最后但重要的一件事,在这些环境文件之一中设置您的 LD_LIBRARY_PATH 后,关闭并重新打开终端的 shell 或例如 source ~/.bashrc
(如果您有显然把它放在你的 bashrc 中)
我已经通过 运行 easy_install path/to/egg
安装了 pyodbc
Python 模块。该模块使用本机代码。输出表明成功。
然而,当尝试 import pyodbc
时,出现错误:cannot open shared object file
。
对该站点的研究表明,Python 在环境变量 LD_LIBRARY_PATH
指定的路径中查找本机库。所以我应该将它设置为指向 easy_install
在安装过程中放置本机文件的路径。
但是,我找不到这个路径。我查看了 /usr/lib
、/usr/lib64
和其他一些有意义的目录(我目前不在工作的 Linux 机器上,所以很抱歉我不记得了我查看的其他目录)。
请说明在哪里可以找到这个路径。
如解释的那样here:
您必须将 LD_LIBRARY_PATH
设置为 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
(在您的 .profile 或 .bashrc 或 .zshrc 中),它指向 unixodbc
和 freetds
共享库的位置如果您通过系统的包管理器安装它们,则已安装。
即如果你在 ubuntu,输入 apt-get install freedts unixodbc
pyodbc 只是 C 库的包装器,因此有此要求。
最后但重要的一件事,在这些环境文件之一中设置您的 LD_LIBRARY_PATH 后,关闭并重新打开终端的 shell 或例如 source ~/.bashrc
(如果您有显然把它放在你的 bashrc 中)