使用Python设置TkHtml(一个Tk小部件)

10
我需要一种简单的方法来呈现使用Requests (python-requests.org) 检索到的HTML页面。我正在Windows上使用Python 3.2。
我曾经使用tkinter,并找到了一个名为TkHtml的Tk小部件。它在http://tkhtml.tcl.tk/上有描述,可以从http://www.hwaci.com/sw/tkhtml/下载DLL。我在http://tix.sourceforge.net/Tixapps/src/Python/TkHtml.py上找到了一个Python包装器。
我不知道如何在Python中运行TkHtml。是否有处理第三方Tk小部件的标准方式?
我将tkhtml.dll放在Python32\DLLs中(不知道这是否正确),并将TkHtml.py放在Python32\Lib\site-packages中。我继续修复了TkHtml.py中的导入,以便与Python 3配合使用(将tkFileDialog更改为tkinter.filedialog,将Tkinter更改为tkinter)。
当我执行以下操作时:
import TkHtml
app=TkHtml.TestApp()

I get the error:

...
File "C:\Program Files\Python32\lib\site-packages\TkHtml.py", line 45, in __init__
master.tk.call("package", "require", "tkhtml")
_tkinter.TclError: can't find package tkhtml

任何想法?
3个回答

5

多写一些文档会更有帮助。 - Louis

5

找到你的Python tcl目录,例如C:\Python32\tcl。这是tcl/tk扩展所在的位置。

在其中创建一个名为Tkhtml的新文件夹。

将以下内容放入此文件夹中:(1)你的.dll文件,(2)名为pkgIndex.tcl的文本文件。

pkgIndex.tcl包含像这样的一行:

package ifneeded Tkhtml 0.0 [list load [file join $dir tkhtml.dll]]

如果你可以在Python提示符下执行此操作,
>>> import Tkinter #tkinter
>>> root = Tkinter.Tk()
>>> root.tk.eval('package require Tkhtml')
'0.0'

如果该软件包可用,则该字符串为'0.0'表示版本号。


2

我正在使用Windows 8(64位)上的Python 3.3,并收到与OP相同的软件包加载错误。

我也已经下载并保存了TkHtml .dll和.py文件到以下文件夹中:

tkhtml.dll -> D:\Python3.3\DLL
TkHtml.py -> D:\Python3.3\Lib\site-packages

根据noob oddy的建议,我做了以下操作:

tkhtml.dll -> D:\Python3.3\tcl\Tkhtml
pkgIndex.tcl -> D:\Python3.3\tcl\Tkhtml

将以下这行代码:package ifneeded Tkhtml 0.0 [list load [file join $dir tkhtml.dll]] 复制到 pkgIndex.tcl 文件中。

对我最终有用的是将所有内容从 Python3.3 文件夹移动到 Python2 文件夹。HTML 渲染器工作得非常好。看起来 TkHtml 不兼容 Python 3。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接