Mac OS X 10.6 Python 2.7 pytidylib - PullRequest
       15

Mac OS X 10.6 Python 2.7 pytidylib

2 голосов
/ 31 октября 2010

Я отвечаю на свой вопрос, но, поскольку я не спал всю ночь, выясняя его, я надеюсь, что спасу других от боли. Если после правильной установки pytidylib или utidylib вы получаете одно из следующих сообщений, этот ответ может помочь.

Изучая Python на Snow Leopard, я установил 32-битную версию Python 2.7, чтобы использовать интерпретатор / редактор IDLE. У Stackoverflow есть отличное объяснение , почему я должен был это сделать.

Когда я установил utidylib, я получил следующую ошибку от 'import tidy':

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

С pytidylib я получил эту ошибку, когда попробовал '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.

Если вы получаете эти ошибки, прочитайте этот ответ. Я надеюсь, что это поможет вам.

Ответы [ 3 ]

4 голосов
/ 07 января 2012

У меня была похожая проблема (см. Трассировку стека ниже) в Linux.С pytidylib == 0.2.1, установленным с помощью pip в virtualenv на Ubuntu 11.10 (Python 2.7) и Gentoo (Python 2.6).Установка apt-get install libtidy-dev в Ubuntu и emerge app-text/htmltidy в Gentoo, решила.

----------------------------------------------------------------------
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 голосов
/ 27 февраля 2016

У меня была та же проблема. Я установил tidylib, но все равно выдает ошибку следующим образом.

 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

, затем я копирую / usr / bin / tidy в папку моего проекта, и это решается.1004 *

0 голосов
/ 31 октября 2010

Несмотря на то, что пакеты Python не могли найти файлы, на самом деле произошло то, что я скомпилировал libtidy для неправильной архитектуры: x86_64 вместо i386.Использование 32-битного установщика Python сделало их несовместимыми.

Для таких неофитов, как я, lipo расскажет вам архитектуру ваших файлов:

$ 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

Возможно, вам придется найти свою libtidyФайлы .dylib и python для сравнения.Чтобы решить эту проблему, вы должны перекомпилировать libtidy для i386 (или связать с уже скомпилированной i386 libtidy в вашей системе).Чтобы перекомпилировать для i386, используйте эти инструкции со следующей модификацией:

cvs -z3 -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co -P tidy
cd tidy
sh build/gnuauto/setup.sh
./configure --prefix=/usr CFLAGS="-arch i386"
make && sudo make install

Это сработало для меня.Я надеюсь, что это также работает для вас.

...