10

Requests( python-requests.org )で取得したHTMLページをレンダリングする簡単な方法が必要です。私はWindowsでPython3.2を使用しています。

私はtkinterを使用していて、TkHtmlというTkウィジェットを見つけました。これはhttp://tkhtml.tcl.tk/で説明されており、DLLはhttp://www.hwaci.com/sw/tkhtml/からダウンロードできます。http://tix.sourceforge.net/Tixapps/src/Python/TkHtml.pyでPythonラッパーを見つけました。

TkHtmlをPythonで動作させる方法がわかりません。サードパーティのTkウィジェットを処理する標準的な方法はありますか?

tkhtml.dllをPython32\DLLに配置し(これが正しいかどうかはわかりません)、TkHtml.pyをPython32 \ Lib\site-packagesに配置します。私は先に進み、Python 3で動作するようにTkHtml.pyのインポートを修正しました(tkFileDialogをtkinter.filedialogに、Tkinterをtkinterに変更しました)。

私がする時:

import TkHtml
app=TkHtml.TestApp()

エラーが発生します:

...
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

何か案は?

4

3 に答える 3

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'はバージョン番号を表します。

于 2012-04-18T04:43:33.927 に答える
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 レンダラーは見事に機能しました。TkHtmlPython 3 には対応していないようです。

于 2013-10-20T02:21:01.087 に答える