3

私は TCL を初めて使用し、他のモジュールへのアクセスに苦労しています。SOURCE コマンドは、TCL プログラムで記述した他のコードを含めるのに役立ちました。ただし、コードのライブラリへのアクセスに問題があると思います。

たとえば、数学関数を参照すると、それが見つかりません。tchsh85 経由で呼び出されるプログラムを検索する際に、コンピュータ上の数学ライブラリの場所を含めるために何かする必要があるに違いないと思います。

invalid command name "::math::statistics::mv-ols"
None of these directories exist on my computer: info library= C:/Tcl/lib/tcl8.5 auto_path= C:/Tcl/lib/tcl8.5 C:/Tcl/lib c:/tcl/lib/teapot/package/win32-x86_64/lib c:/tcl/lib/teapot/package/tcl/lib tcl library= C:/Tcl/lib/tcl8.5 auto_index= source C:/Tcl/lib/tcl8.5/word.tcl auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/parray.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/package.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/word.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/word.tcl auto_index= source C:/Tcl/lib/tcl8.5/package.tcl auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/package.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/word.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/package.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/package.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/word.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl auto_index= source C:/Tcl/lib/tcl8.5/history.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl

この回答を受け取りました: ::math::statistics は TCLlib の一部です。インストールされているかどうかを確認するには、次のように入力します

パッケージには tcllib が必要で、インストールされている場合はバージョン番号が表示されます。インストールされていない場合は、Teacup を使用してインストールできます。

私はコードを試しました:

catch {package require nonexistentName}
 package names
puts "[package names]"

そして私は受け取った:

Thread logger img::pixmap TclOO tablelist_tile struct::tree opt tcltest img::ico img::pcx struct::set msgcat pngtcl tablelist::common ftp Tclx trsync tdom img::sgi report comm dde Mk4tcl img::sun img::gif img::window textutil cmdline csv img::tga Img img::png Tktable Itk Ttrace tipstack zlibtcl img::base platform fileutil Tk vfs ActiveTcl http tbcload Memchan style struct::graph tablelist treectrl struct::queue img::jpeg activestate::teapot::link img::bmp registry jpegtcl tdomhtml tooltip snit img::ppm struct::stack tcl::tommath img::tiff tls widget struct img::xpm md5 BWidget img::xbm log starkit Tcl Trf tifftcl Itcl img::ps sqlite3 base64 trofs
0.7

私はTCLを理解していないかもしれませんが、私が使用した他の言語では、呼び出されたコードを特定の順序で検索するディレクトリまたはファイルのリストを設定する方法があります。tclsh85 にどこを見るかを伝える必要があるように思えます。

ActiveState から tcl 8.5.13 と BWidget 1.9.6 をダウンロードしました。tcl をインストールし、コンピューターに BWidget を解凍しましたが、Tcl プログラムとは別の場所にあります。数学はその一部ですか?そうでない場合、何をダウンロードすればよいですか? 私は Windows Vista で実行しているので、ビルドする必要があるものではなく、実行可能なバージョンを取得することを好みます。私は tcl プログラムを作成できます。それらが自己完結型である限り、または SOURCE を使用できれば、すべて問題ありません。私が問題を抱えているのは、プログラム外でコードを呼び出すことです。

auto_path は現在、私のコンピューター上の何にも対応していないため、私の環境に合わせて設定する必要があるのではないかと心配しています。

tclの仕組みについて何も知らないと仮定して答えてください。私は自分自身を学ぼうとしています (インターネットのドキュメントや質問に答える人々の助けを借りて)。

ありがとうございました。

4

1 に答える 1

14

わかりました、私はあなたの質問を要約しようとします:

必要なパッケージをインストールする方法を知りたい。

teacupたとえば を使用してインストールするか、 tcllibteacup install math::statisticsをダウンロードしてインストールすることができます。Tcllib のインストールは簡単で、インストール先の正しいパスが自動的に選択されます。コードでライブラリを使用するには、次のことを行う必要がありますpackage require math::statistics

Tcl がライブラリを検索するディレクトリを追加する方法を知りたいです。

ライブラリの種類に応じて、2 つの可能性があります。

  • pkgIndex.tcl または autoIndex というファイルがある場合は、auto_path変数を変更する必要があります。これは で行うことができますlappend auto_path path/to/the/files
  • .tm で終わるファイルが 1 つしかない場合は、もう少し複雑です。正しい親ディレクトリを追加する必要があります。したがって、/some/directory/math/statistics.tm にある statistics.tm ファイルがあり、これが math::statistics パッケージである場合、適切なディレクトリは /some/directory です。を使用して追加できます::tcl::tm::path add /some/directory

このようなことはほとんど必要ありません。BWidgets を正常にインストールできたので、auto_path で問題ないはずです。Tcl は (Java、Perl などを含む他の多くの言語と同様に)/通常の windows の代わりに単一のパス区切り文字を使用することに注意してください\

単一ファイルの実行可能ファイルを好む はい、可能ですが、まずパッケージの取得方法、必要なファイルなどを理解する必要があります。単一ファイルの Tcl ディストリビューションの技術はStarkitと呼ばれ、非常に便利ですが、すでにTclに精通しています。

于 2013-01-17T20:53:03.830 に答える