[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:16168] Re: Python-2.2.2



小山@倉敷です。

この ML の投稿は久しぶりですが、盛り上がってますね。

それは Wed, 06 Nov 2002 11:07:28 +0900 (JST) 頃のことでした。
rp9h-kd@asahi-net.or.jp さんはおっしゃいました...

> Plamo-3.0 収録の python.tgz は、python, Tcl/Tk 間のインターフェースと
> なるモジュール tkinter が、ビルド不良 ? か、上手く動作しないようです。
> python ソースに含まれる Demo/tkinter/guido/ 以下のデモが動きません。

Python のバイナリパッケージの build の時に、Python のモジュール関係
をデフォルトのまま build してるような感じです。

readline も使えないようです。

> conrib-3.0 の WWW/ML/Python-2.1.3-i386.tgz も同様に動きませんが、
> .all/Python-1.6.1.tgz は正常に動作するようです。
> 
> 原因は、python がビルド時に Tcl/Tk ライブラリの名前や場所をモジュール
> にハード・コーディングしてしまうことのように思われます。

python を build する時は、./configure 後に source の中の Modules/Setup
を使用する内容に合わせて修正(コメントアウトなど)をする必要があります。

これで、 _tkinter という build-in されたモジュールが作成され、
実際には /usr/lib/python2.2/lib-tk/Tkinter.py を import して
python で利用できるようになります。(バイナリの.pycがあるので
そっちが動きますが、なければ最初は .py で動く)

この中で、

tkinter = _tkinter # b/w compat for export
	↓
TkVersion = float(_tkinter.TK_VERSION)
TclVersion = float(_tkinter.TCL_VERSION)

としてバージョンを取得しています。今のバイナリパッケージでは、

$ python
Python 2.2.1 (#1, May 28 2002, 13:28:33)
[GCC 2.95.3 20010315 (release)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import _tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named _tkinter

となってしまうという事ですね。

python インタープリタを使用するのであれば、readline も
無いと不便なので大抵の人は build しなおすかもしれません。

> この問題を回避した plamo-3.0 用パッケージ (最新版 python-2.2.2) を
> 作ってみましたので、ビルド・スクリプトを投稿いたします。
> ================== スクリプト内で使うパッチ Setup-plamo.diff =========
> --- Setup.orig	2002-11-06 10:10:15.000000000 +0900
> +++ Setup	2002-11-06 09:56:39.000000000 +0900
> @@ -304,11 +304,11 @@
>  # *** Always uncomment this (leave the leading underscore in!):
>  # _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
>  # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
> -#	-L/usr/local/lib \
> +	-L/usr/lib \

このあたりは、リンクするライブラリが、/usr/lib で無くて /usr/local/lib
など通常見に行かないところにある時などだけでいいかと思うので、デフォルト
のバイナリパッケージという意味だと、prefix さえ変えていればいいように
思います。

>  # *** Uncomment and edit to reflect your Tcl/Tk versions:
> -#	-ltk8.2 -ltcl8.2 \
> +	-ltk8.0 -ltcl8.0 \

ここで、 -ltcl8.0jp で、symlink しなくてもいけそうな気がします。
本質的には、tcl/tk を上げるかどうかというのもありますけど。

> # わたしは、 python のことは (興味はありますが) 全然わかりません。
> # tkinter の件も、ゲーム pysol を動かそうとして発見しただけです。
> # このようなビルドで良いのかも自信がありません。
> # 少なくとも手元では pysol が動くようになったのですが :-)

前述のように、python インタプリタを使用する時に、readline が
無いと不便なので、同じく Modules/Setup の 

# readline readline.c -lreadline -ltermcap

これをコメントアウトしましたが、termcap が入ってないようです。

また、時間を見て試してみますが、他の depend のからみがあるものの
tcl/tk の version 上げて、readline を使えるようにしてというのが
良さそうです。

---
         _\|/_
         (o o)
 +----oOO-{_}-OOo--------------+
 |  Kaihei Koyama / KCT Corp.  |
 |  RastamanEngineer           |
 |  mailto:koyama@kct.co.jp    |
 |  http://www.kct.co.jp       |
 +-----------------------------+

Follow-Ups
[plamo:16184] Re: Python-2.2.2, KIDO Hideyuki
References
[plamo:16154] Python-2.2.2, KIDO Hideyuki

[検索ページ] [メール一覧]
Plamo ML 公開システム