2010-10-31 20 views
2

Je réponds à ma propre question, mais comme je suis resté éveillé toute la nuit à le découvrir, j'espère que j'épargnerai la douleur aux autres. Si vous obtenez l'un des messages suivants après l'installation correcte pytidylib ou utidylib, cette réponse peut vous aider.Mac OS X 10.6 Python 2.7 pytidylib utidylib ne pouvait pas trouver liby

En apprenant Python sur Snow Leopard, j'avais installé la version 32 bits de Python 2.7 pour pouvoir utiliser l'interpréteur/éditeur IDLE. Stackoverflow a un bon explanation pourquoi je devais le faire.

Quand j'ai installé utidylib, je me suis l'erreur suivante de 'import tidy ':

' OSError: Couldn't find libtidy, please make sure it is installed.'

Avec pytidylib, j'ai eu cette erreur quand j'ai essayé 'from tidylib import tidy_document ':

' OSError: Could not load libtidy using any of these names: libtidy,libtidy.so,libtidy-0.99.so.0,cygtidy-0-99-0,tidylib,libtidy.dylib,tidy.'

Si vous obtenez ces erreurs, s'il vous plaît lire cette réponse. J'espère que ça t'aide.

Répondre

0

Bien qu'il semblait que les paquets Python ne puissent pas trouver les fichiers, ce qui se passait vraiment, c'est que j'ai compilé libtidy pour la mauvaise architecture: x86_64 au lieu de i386. L'utilisation du programme d'installation Python 32 bits les rendait incompatibles.

comme moi pour les néophytes, lipo vous dira l'architecture de vos fichiers:

$ lipo -info /Library/Frameworks/Python.framework/Versions/2.7/bin/python 
Architectures in the fat file: /Library/Frameworks/Python.framework/Versions/2.7/bin/python are: ppc i386 

$ lipo -info /usr/lib/libtidy.dylib 
Non-fat file: /usr/lib/libtidy.dylib is architecture: x86_64

Vous pourriez avoir à localiser vos fichiers libtidy.dylib et python à comparer. Pour résoudre le problème, vous devez recompiler libtidy pour i386 (ou le lier à un libtidy compilé i386 déjà sur votre système). Recompiler pour i386, utilisez these instructions avec la modification suivante:

cvs -z3 -d:pserver:[email protected]:/cvsroot/tidy co -P tidy 
cd tidy 
sh build/gnuauto/setup.sh 
./configure --prefix=/usr CFLAGS="-arch i386" 
make && sudo make install 

Cela a fonctionné pour moi. J'espère que cela fonctionne aussi pour vous.

4

J'ai eu un problème similaire (voir stacktrace ci-dessous) sur Linux. Avec pytidylib == 0.2.1 installé avec pip dans un virtualenv à la fois sur Ubuntu 11.10 (Python 2.7) et Gentoo (Python 2.6). L'installation apt-get install libtidy-dev sur Ubuntu et emerge app-text/htmltidy sur Gentoo, l'a résolu.

 
---------------------------------------------------------------------- 
File "/home/andre/Progz/some_site/djcode/apps/default/tests.py", line ?, in default.tests.__test__.doctest 
Failed example: 
    from tidylib import tidy_document 
Exception raised: 
    Traceback (most recent call last): 
     File "/home/andre/Progz/some_site/lib/python2.6/site-packages/django/test/_doctest.py", line 1267, in __run 
     compileflags, 1) in test.globs 
     File "", line 1, in 
     from tidylib import tidy_document 
     File "/home/andre/Progz/some_site/lib/python2.6/site-packages/tidylib/__init__.py", line 71, in 
     raise OSError("Could not load libtidy using any of these names: %s" % (",".join(LIB_NAMES))) 
    OSError: Could not load libtidy using any of these names: libtidy,libtidy.so,libtidy-0.99.so.0,cygtidy-0-99-0,tidylib,libtidy.dylib,tidy 
---------------------------------------------------------------------- 
0

J'ai eu un même problème.J'ai installé tidylib, mais toujours sortir erreur comme suit.

raise OSError("Could not load libtidy using any of these names: %s" % (",".join(LIB_NAMES))) 
    OSError: Could not load libtidy using any of these names: libtidy,libtidy.so,libtidy-0.99.so.0,cygtidy-0-99-0,tidylib,libtidy.dylib,tidy 

puis je copie/usr/bin/tidy dans mon dossier de projet, et il a été résolu.