10

私はEclipse Kepler(2013)とpython 3.3.2で作業しており、次のような単純なインポートを実行しています

import glob
a = glob.glob('*')
print(a)

与えます:

TypeError: 'module' object is not callable

Idle で同じコードを実行すると、これは当てはまりません。私は何かが欠けていることを知っています。

どんな助けでも大歓迎です。

4

4 に答える 4

6

おそらくあなたのEclipse環境にglobは、標準ライブラリの前にインポートされるという名前のモジュールがあります。

を印刷しglob.__file__て確認してみてください。

于 2013-09-06T12:05:13.510 に答える
6

場合によっては、組み込みモジュールと同じファイル名を使用することになります。ファイルに「glob.py」という名前を付けないでください。

于 2015-08-31T05:59:41.103 に答える
4

これはglob、モジュール検索パスで名前が付けられたパッケージを定義した場合にのみ可能です。そのため、組み込みモジュールをロードする代わりに、globpython はそのパッケージをインポートしています。

モジュールの検索パスにこのようなもの

glob
├── glob.py
├── glob.pyc
├── __init__.py
└── __init__.pyc

同じエラーが発生します:

>>> import glob
>>> glob.__file__
'/home/monty/py/glob/__init__.pyc'
>>> glob.glob()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable

このパッケージの名前は、Eclipse が使用するモジュール検索パスにあるように見えるため、別の名前に変更する必要があります。

于 2013-09-06T12:05:57.423 に答える