web-dev-qa-db-ja.com

Python tclが正しくインストールされていません

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)を使用しています。

12
psiovana

アクティベートスクリプトを変更して解決しました。

set "TCL_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
set "TK_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
5
shucun GUO

何ができるかに関しては、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コミュニティバージョン 。インストールする権限がある場合、これが最も簡単なオプションです。これがCS101用であることを確認すると、ラボ管理者はその許可を許可しない可能性があります(ポリシーまたはテクノロジによるかどうかに関係なく)。もちろん、それはおそらく、この答えがあなたの差し迫った必要性を助けるには遅すぎることを意味します。

それが何を意味するかについて、それ以上の情報がなければ、私は今のところ推測しかできません。私は逆の問題を抱えていました。それが何を意味するのかについての洞察が得られることを願って、それについてお話しします。

8.5.9をインストールしましたが、init.tclには8.5.2が必要でした。私の問題は、ActiveState pythonをインストールしてから、公式python(2.7、64ビット)、または後でインストールした追加のパッケージ)をインストールしたことが原因だと思います。下部にメモがあります。 of このダウンロードページ MacOSのTcl/Tkに関して、PCにも問題の余地があると解釈できます。ActiveStatePython 2.7にはTcl/Tkが含まれます8.5.9、文書化されているように ここ7-Zip を使用してActiveStateとPython.orgからmsiファイルを開き、「tcl」を入力してから「require」を入力します。 ActiveStatemsiのinit.tclがpackage require -exact Tcl 8.5.9を指定していることがわかります。

私の推測では、8.5.2の要件は、通常のpython install(明らかにgrepableが少ない)、または後でインストールしたパッケージからのものだと思います。ActiveStatemsiを修復モードで実行しても修正されません。問題が発生し、修復モードでPython msiを実行することもありません。

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

5
hlongmore

PyCharm IDE with Python2.7。c:\ Python27\tcl\tcl8.5\init.tcl "パッケージには-exactTcl8.5が必要です。 2 "に変更

package require -exact Tcl 8.5.9

C:\ Python27\tcl\tk8.5\tk.tcl "パッケージには-exactTk 8.5が必要です。2"次のように変更します。

package require -exact Tcl 8.5.9

これは私のために働いた。

1
user914425

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

Python IDLEは起動しません

1
amundell

私はubuntu11.04にns2.35を最後にインストールしたときに同じ問題に直面しました。 ns2.35をインストールした後、nsのインストールが成功したというメッセージが表示されました。次に、/。bashrcにパスを設定します。それから私はあなたが得たのと同じエラーを私に与えたnsコマンドを与えました。

問題は、ns実行可能ファイルも/ usrにあり、競合しているためです。

解決:

  1. ターミナルcd/usr/local/binで次のコマンドを実行して、場所root-usr-local-binに移動します。
  2. そこにnsファイルがあります。次のコマンドrmnsを指定して、削除する必要があります。
  3. 以上で完了です。これで、nsが正常に実行を開始します。
1

より一般的な解決策を提供するには、エラートレースバックで、次のようなものが必要です。

C:/ Users/[perso path] /tcl/tcl8.6/init.tcl:パッケージ「Tcl」のバージョン競合:8.6.6、パッケージ「Tcl」のバージョン競合は正確に8.6.8必要:8.6.6 、正確に8.6.8が必要です

したがって、エラーで説明されているファイルC:/Users/[perso path]/tcl/tcl8.6/init.tclを開き、package require -exact Tcl 8.6.8をエラーで必要なバージョンに置き換えます。私にとっては8.6.6:package require -exact Tcl 8.6.6でした。

次に、同じ問題がTk(別のファイル)で発生します。同じ操作を実行すると、機能しました。たぶんあなたは同じバージョンを持っていないでしょう、ただそれらを交換してください。

0
Axel Puig

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

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

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

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

0
JLondono

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が飛び出すことはありませんでしたが、現在は同様に機能します。かっこいい、@ JonathanSpoonerと@hlongmoreに感謝します

0
Lisa

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

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

0
Evandrojs