14

Python用のgraphics.pyをインストールしました。しかし、次のコードを実行しようとしたとき:

    from graphics import *

    def main():
        win = GraphWin("My Circle", 100, 100)
        c = Circle(Point(50,50), 10)
        c.draw(win)
        win.getMouse() # Pause to view result
        win.close()    # Close window when done

    main()

私の通訳は私にこの奇妙な情報を教えてくれました:

Traceback (most recent call last):
File "F:\CS 101\Python\projects\packer.py", line 8, in <module>
from graphics import *
File "F:\CS 101\Python\lib\site-packages\graphics.py", line 168, in <module>
_root = tk.Tk()
File "F:\CS 101\Python\lib\tkinter\__init__.py", line 1674, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects,                            useTk, sync, use)
_tkinter.TclError: Can't find a usable init.tcl in the following directories: 
{F:\CS 101\Python\tcl\tcl8.5.9} {F:/CS 101/Python/tcl/tcl8.5} {F:/CS        101/Python/lib/tcl8.5} {F:/CS 101/lib/tcl8.5} F:/lib/tcl8.5 {F:/CS 101/library} F:/library     F:/tcl8.5.2/library F:/tcl8.5.2/library

F:/CS 101/Python/tcl/tcl8.5/init.tcl: version conflict for package "Tcl": have 8.5.2,            need exactly 8.5.9
version conflict for package "Tcl": have 8.5.2, need exactly 8.5.9
while executing
"package require -exact Tcl 8.5.9"
(file "F:/CS 101/Python/tcl/tcl8.5/init.tcl" line 20)
invoked from within
"source {F:/CS 101/Python/tcl/tcl8.5/init.tcl}"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile]"

これはおそらく、Tcl が正しくインストールされていないことを意味します。

どういう意味ですか?私に何ができる?

PS: コーディングに Eclipse (PyDev) を使用しています。

4

9 に答える 9

10

activate スクリプトを変更することで苦労しました。

set "TCL_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
set "TK_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
于 2016-10-28T08:15:30.440 に答える
5

できることについては、init.tcl ファイルを編集して次のように読み込んでみてください。package require Tcl 8.5.0-8.6うまくいかない場合は、試してみてくださいpackage require -exact Tcl 8.5.2。Tcl の代わりに Tk 用に、tcl\tk8.5\tk.tcl ファイルも同じ方法で編集する必要がありました。

ファイルを編集しても問題が解決しない場合は、次の場所から最新の Tcl をダウンロードしてインストールできます。

  • sourceforgeの最新バージョンを使用したソース。これには、許容できるコンパイラが必要です。たとえば、blog.victorjabur.com /2011/06/05/compiling-python-2-7-modules-on-windows-32-and-64-using-msvc-2008-express / またはstackoverflow.com/questionsを参照してください。 /4218613/Building-a-python-module-on-windows-using-ms-compiler .
  • 最新のActiveState コミュニティ バージョン。インストールする権限がある場合、これが最も簡単なオプションです。これが CS 101 用であることを確認すると、ラボ管理者は (ポリシーまたはテクノロジによるかどうかにかかわらず) その許可を許可しない場合があります。もちろん、それはおそらく、この回答が遅すぎて、差し迫ったニーズに対応できないことも意味します.

それが何を意味するかについては、これ以上の情報がないので、今は推測するしかありません。逆の問題がありました。それが何を意味するのかについての洞察をあなたに与えることを願って、私はそれについてあなたに話します.

8.5.9 をインストールしましたが、init.tcl には 8.5.2 が必要でした。私の問題は、ActiveState python、次に公式のpython(2.7、64ビットの両方)、および/または後でインストールした追加のパッケージをインストールしたことが原因であると推測しています。このダウンロード ページの下部に、 MacOS 上の Tcl/Tk に関するメモがあり、PC にも問題が発生する可能性があると解釈できます。ActiveState Python 2.7 には、ここに記載されているように、Tcl/Tk 8.5.9 が含まれています。7-zipを使用して ActiveState と Python.org から msi ファイルを開き、"tcl" と "require" を grep すると、ActiveState msi の init.tcl でpackage require -exact Tcl 8.5.9.

私の推測では、8.5.2 の要件は、通常の python インストール (明らかに grep 可能性が低い)、または後でインストールしたパッケージに由来するものです。ActiveState msi を修復モードで実行しても問題は解決せず、Python msi を修復モードで実行しても問題は解決しません。

PS これがタイムリーでない場合、なぜ私はまだ答えたのですか? あなたのためにまともな答えを作成することで、私の問題をよりよく理解することができました.

于 2012-06-08T20:06:54.910 に答える
1

Python 2.7 で PyCharm IDE を実行しています。内部 c:\Python27\tcl\tcl8.5\init.tcl "package require -exact Tcl 8.5. 2 " に変更

package require -exact Tcl 8.5.9

内部 c:\Python27\tcl\tk8.5\tk.tcl "package require -exact Tk 8.5. 2 " を次のように変更します。

package require -exact Tcl 8.5.9

これは私にとってはうまくいきました。

于 2013-12-04T20:19:56.873 に答える
1

TCL_Library 環境変数を使用する別のプログラムとの互換性の問題がある可能性があります。添付のスレッドで、環境変数のパスを変更し、問題を修正しました。あなたの問題に関連している可能性があります:

Python IDLE が起動しない

于 2012-12-21T12:33:11.017 に答える
0

Windows 10でmayplotlib.pyplotを使用して単純な散布図を生成するときに同様の問題が発生しました.新しい環境変数を追加することで解決しました

[コントロール パネル] > [システムとセキュリティ] > [システム] > [システムの詳細設定] > [環境変数] > [UserName のユーザー変数]:

変数名: TCL_LIBRARY、変数値=C:\Python27\tcl\tcl8.5

変数名:TK_LIBRARY、変数値=C:\Python27\tcl\tk8.5

于 2017-01-03T17:33:49.907 に答える
0

PATH ソリューションはうまくいきませんでした。私はWin7 python 2.7を使用しています。最後に、2 つのファイルを編集しました: C:\Python27\tcl\tk8.5\tk.tcl を次のpackage require -exact Tk 8.5.2 ように変更します 。package require Tk 8.5.0-8.6

C:\Python27\tcl\tcl8.5\init.tcl package require -exact Tcl 8.5.2 に変更 package require Tcl 8.5.0-8.6

そして、これはうまくいきます!以前は IDLE が飛び出すことはありませんでしたが、今では同様に機能します。クール、ありがとう@Jonathan Spoonerと@hlongmore

于 2013-08-30T06:32:03.980 に答える
0

windows8/python2.7でもまったく同じ問題があったと思います。それは、インストールと環境変数の設定の地獄でした。それらのすべては無価値です。今日、私は解決策を見つけました:

D: に Python をダウンロードしてインストールし (インストールを保持するため)、Tcl フォルダを同じ相対位置の C: インストールにコピーします: C:\Python27

于 2015-08-11T19:43:07.177 に答える