加载共享库时出错:libreadline.so.5

0 投票
4 回答
12089 浏览
提问于 2025-04-18 14:47

我正在尝试运行这个命令 sudo pip install --upgrade virtualenv,但是每次都会收到以下错误信息:

/opt/bitnami/python/bin/.python2.7.bin: error while loading shared libraries:
libreadline.so.5: cannot open shared object file: No such file or directory

我试过这个链接里的建议 [Bitnami - /opt/bitnami/python/bin/.python2.7.bin: error while loading shared libraries: libreadline.so.5](Bitnami - /opt/bitnami/python/bin/.python2.7.bin: error while loading shared libraries: libreadline.so.5 和没有效果),但并没有帮助。

我为什么会收到这个错误呢?

4 个回答

-1

所需的文件在目录中找不到。通常这是因为某个文件的旧版本被更新成了新版本(比如说,libreadline.so.5libreadline.so.8 替换了)。要解决这个问题,首先你需要检查一下库的目录(/usr/lib),看看是否存在文件的其他版本。如果有的话,你可以创建一个指向那个文件的链接,并把这个链接命名为缺失的文件名。

下面的例子是创建一个名为缺失文件的链接(libreadline.so.5),这个链接指向 libreadline.so.8。但是要小心,因为如果某个 libreadline.so.* 文件丢失了,可能会导致你的终端无法接收输入。

cd /usr/lib
ln -sf libreadline.so.8 -T libreadline.so.5

这个解决方案对我有效。

0

虽然maplesyrup的回答不错,但我找到了一种在实际操作中效果更好的解决办法。

你可以运行这个命令:sudo echo '. /opt/bitnami/scripts/setenv.sh' >> /opt/bitnami/.bitnamirc

这个命令会把maplesyrup回答中的脚本调用添加到你的设置里,这样每次登录时都会自动运行。唯一的缺点是你在通过ssh登录后需要立即输入密码,但总的来说,这比每次登录都手动运行脚本要方便得多。

0

用pip安装virtualenv会把它装在bitnami堆栈里。因此,要使用virtualenv,我们需要执行一个叫setenv.sh的脚本。这个脚本给virtualenv提供了必要的权限,但每次使用之前都得运行这个脚本,所以更好的办法是用sudo apt-get在系统的根目录下安装virtualenv。

在根目录安装virtualenv

sudo apt-get install python-virtualenv

3

我搞明白了这个问题。

  1. 你需要通过输入 sudo su 命令进入根目录。

  2. 现在在根目录下运行以下命令: . /opt/bitnami/scripts/setenv.sh

  3. 我通过SSH登录到我的服务器,显然每次登录都得按照相同的步骤来。

撰写回答