質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1051閲覧

pythonでtexttableのサンプルコードがNameError: global name 'callable' is not definedで動かない

angel

総合スコア18

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2017/11/19 09:43

pythonで、コンソール上に、表を表示したいのですが、以下のサンプルコードが、NameError: global name 'callable' is not definedで動きません。
環境は、puppy linux tahrpup 6.0.5、pythonのバージョンは、Python 3.1.4、texttableは1.1.1です。
ちなみに、昨日まで、テーブル表示されていたのに、今日になって突然エラーがでるようになりました。どなたか、エラーの内容から、原因の分かる方はいらっしゃらないでしょうか?

エラーの内容
sh-4.3# python texttable_test.py
Traceback (most recent call last):
File "texttable_test.py", line 15, in <module>
["Mr\nBaptiste\nClement", 1, "Baby"] ])
File "/root/python/account_book/texttable.py", line 368, in add_rows
self.add_row(row)
File "/root/python/account_book/texttable.py", line 347, in add_row
cells.append(self._str(i, x))
File "/root/python/account_book/texttable.py", line 473, in _str
if callable(dtype):
NameError: global name 'callable' is not defined

使ったコード

# -*- coding: utf-8 -*- ########################## #texttable_test.py # ########################## import texttable from texttable import Texttable table = Texttable() table.set_cols_align(["l", "r", "c"]) table.set_cols_valign(["t", "m", "b"]) table.add_rows([ ["Name", "Age", "Nickname"], ["Mr\nXavier\nHuon", 32, "Xav'"], ["Mr\nBaptiste\nClement", 1, "Baby"] ]) print (table.draw() + "\n") table = Texttable() table.set_deco(Texttable.HEADER) table.set_cols_dtype(['t', # text 'f', # float (decimal) 'e', # float (exponent) 'i', # integer 'a']) # automatic table.set_cols_align(["l", "r", "r", "r", "l"]) table.add_rows([["text", "float", "exp", "int", "auto"], ["abcd", "67", 654, 89, 128.001], ["efghijk", 67.5434, .654, 89.6, 12800000000000000000000.00023], ["lmn", 5e-78, 5e-78, 89.4, .000000000000128], ["opqrstu", .023, 5e+78, 92., 12800000000000000000000]]) print (table.draw()) コード

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

callable という組み込みの関数は Python 3.0 で一旦削除され、3.2から復活したようです。
Python3.1.4 で callable を使うコードがあれば、上記のようなエラーになるは当然のような気がします。

https://docs.python.jp/3/library/functions.html#callable

推測ですが「昨日の時点で動いていた」のであれば、お使いのマシンの中には、別のバージョンのPythonが混在していて、それで実行させた可能性があります。

例えば virtualenv や vevn などの仮想環境を使って、特定のバージョンのPythonを使うようにしていたりしませんか?

投稿2017/11/19 10:38

tell_k

総合スコア2120

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

angel

2017/11/20 17:44

回答有り難うございます。 本日、他の環境のpyton3.5で試すと上手く行きました。 原因もはっきりわかり助かりました。 ただ、Puppylinux では、Python3.1.4までしかインストール出来ないので、諦めようと思うのですが、方法をご存知であればご教授願います。
tell_k

2017/11/20 23:47

PuppyLinux に明るくないので間違ってるかもしれませんが、gccなどのビルドツールが使えるのであれば、最新のPythonをソースからインストールすることはできそうな気がします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問