4

当我在 python 中导入 tidylib 并执行程序时,我收到以下错误

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "C:\Python27\lib\site-packages\tidylib\__init__.py", line 71, in <module>

        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
4

3 回答 3

3

确保 libtidy.so 在您的 $LD_LIBRARY_PATH 上。看起来 python 正在尝试正确导入 tidy,但是找不到 tidy 使用的库之一。

如果使用 Windows,来自PyTidy 文档

Windows:(使用 PyTidyLib 0.2 或更高版本!)预构建的 HTML Tidy DLL 可从至少两个位置获得。int64.org Tidy Binaries 页面提供了 2005 年针对 32 位和 64 位 Windows 构建的二进制文件,针对源的修补版本。HTML Tidy 网站链接到 2006 年构建的 DLL,仅适用于 32 位 Windows,使用 vanilla 源(在底部附近滚动到“其他构建” - 使用读取“exe/lib/dll”的那个,而不是仅“exe”版本。)

一旦有了 DLL(可能命名为 tidy.dll、libtidy.dll 或 tidylib.dll),您必须将它放在系统路径上的目录中。如果您从命令行运行 Python,则将 DLL 放在当前工作目录中会起作用,但否则这是不可靠的(例如,对于服务器软件)。

因此,一旦您拥有该 dll,请将其位置(例如 C:/myfiles/somethingelse/libtidy.dll)从mathworks添加到 Windows 的 PATH :

  1. 右键单击“我的电脑”图标。(在 Windows XP、Vista 或 Windows 7 中,我的电脑图标可能位于开始菜单中。)
  2. 从上下文菜单中选择属性。(或者,您可以双击控制面板中的系统图标)
  3. 单击 Windows Vista 或 Windows 7 上的“高级”选项卡或“高级系统设置”
  4. 单击环境变量按钮。
  5. 单击名为“路径”的变量,然后单击编辑。现在将目标目录添加到变量的值中,使用分号作为分隔符。

例如,如果您想将 MATLAB/bin 的路径添加到您的系统中,如果该路径位于 c:\matlab\bin,您将在路径末尾输入以下内容:

;c:\matlab\bin

不要忘记分号

于 2013-09-27T13:17:33.413 回答
0

我遇到了同样的错误,但在 Linux(Alpine 3.8 Docker 容器)上。即使我已经安装在 Alpine 和Python 3 中tidyhtml,它也无法找到微小的。tidyhtml-libspytidylib

看到这个后:https ://bugzilla.redhat.com/show_bug.cgi?id=1369946我安装了 Alpinetidyhtml-dev包,它(令人惊讶地)使它工作。

于 2019-08-15T13:37:15.230 回答
-1

尽管已接受的答案对于 Windows 的这个问题是有效的,但在 Linux 上解决这个问题的最佳方法是使用包管理器来安装缺少的库之一。

例如,在 CentOS7 上,我必须使用

sudo yum install -y php-tidy

在这篇博文中提到:http ://www.linuxspy.info/2262/html-tidy-installation-for-wordpress-w3-total-cache-plugin/

于 2018-01-23T14:58:07.793 回答