【问题标题】:Compiling python from source error with shared library loading error使用共享库加载错误从源错误编译python
【发布时间】:2011-07-08 01:41:48
【问题描述】:

当我尝试运行 python 时出现错误:

python2.6:加载共享库时出错:libpython2.6.so.1.0:无法打开共享对象文件:没有这样的文件或目录

我之前编译过没有问题的 python 并且运行良好。我没有启用--with-threads 或--enable-shared。现在我启用了这两个编译选项,我在尝试运行它时遇到了这个错误。文件 libpython 位于 $HOME/lib 中,python 位于 $HOME/bin 中。

【问题讨论】:

    标签: python compiler-construction shared-libraries


    【解决方案1】:

    sudo ldconfig -n $HOME/lib

    应该解决这个问题。否则,strace python 并粘贴结果。

    【讨论】:

    • 无权访问 sudo 但是是的,我在发布后立即意识到它不在 LD-LIBRARY_PATH 中,因此只需将其附加并立即启动即可,无需担心。有没有办法作为编译选项强制它在 $HOME/lib 中查找 python 库。这真的是我想做的。同样,当我运行 python setup.py 时,它会在 lib 中查找我不必设置 PYTHONPATH 的包。我认为应该有办法在编译时做到这一点。
    • "make install" 应该已经为您完成了(运行 ldconfig),但没想到却没有。
    • “作为编译选项”到底是什么意思?
    • -Wl,--rpath=$HOME/lib 会将 $HOME/lib 嵌入到 python 可执行文件中,作为搜索共享库时要查看的附加目录。弄清楚如何将其添加到链接器选项中。
    • @jcomeau_ictx - 我的意思是,如果我在编译期间放入要包含该文件夹的链接器,Python 将自动查找那里。所以 LDDFLAGS=$HOME/lib 或类似的东西。没有可以运行的 ldconfig 并且我没有对系统的 root 访问权限,因此无论哪种方式都无关紧要。我认为我能做的最好的就是在 .bashrc 中添加一个导出语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多