PIL - libjpeg.so.8:无法打开共享对象文件:没有那个文件或目录
我编译了libjpeg v8和PIL 1.1.7,并且在系统的Python上导入了_imaging模块,但在虚拟环境中却出现了这个错误:
libjpeg.so.8: cannot open shared object file: No such file or directory
这是在虚拟环境中用python -v解释器运行时的错误信息
>>> import _imaging
dlopen("/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/PIL/_imaging.so", 2);
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: libjpeg.so.8: cannot open shared object file: No such file or directory
以下是相关的路径信息:
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/distribute-0.6.14-py2.6.egg
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg
/home/ygamretuta/dev/py/django/lib/python2.6
/home/ygamretuta/dev/py/django/lib/python2.6/plat-linux2
/home/ygamretuta/dev/py/django/lib/python2.6/lib-tk
/home/ygamretuta/dev/py/django/lib/python2.6/lib-old
/home/ygamretuta/dev/py/django/lib/python2.6/lib-dynload
/usr/lib/python2.6
/usr/lib/python2.6/plat-linux2
/usr/lib/python2.6/lib-tk
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages
/home/ygamretuta/dev/py/django/lib/python2.6/site-packages/PIL
我使用的是Ubuntu 10.10,下面是uname -a的输出:
Linux ygam-desktop 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:40:58 UTC 2011 i686 GNU/Linux
我使用的是Python 2.6
我已经参考了以下指南:
http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/
http://www.jooncode.com/2010/12/02/python-pil-jpeg-resync-restart-error-imaging-module-solve/
4 个回答
1
可能只需要安装 libjpeg 这个库。
conda install -c conda-forge libjpeg-turbo
5
如果你在本地安装Python,你还可以通过设置LD_LIBRARY_PATH这个环境变量来控制动态链接,这个设置是针对当前会话的。
export LD_LIBRARY_PATH=/srv/plone/python/python-2.6/lib
python
import _imaging
...
这样做的话,你就不会意外地破坏你的操作系统了。(这种情况是有可能发生的:http://opensourcehacker.com/2011/08/31/zend-server-installation-potentially-kills-your-ssh/)
21
这里有个解释:为什么Python找不到在sys.path目录中的共享对象?
一个简单的解决办法是,把包含libjpeg.so.8
的目录添加到你的/etc/ld.so.conf
文件中,然后运行ldconfig
。