2011-03-21 77 views
0

奇怪的問題:蟒蛇通配符導入模塊時將其導入

文件結構:

pages/ 
     test.py 
spawn.py 

從spawn.py,如果我做

from pages import test 

一切正常。

如果我做

from pages import * 

我得到

NameError: name 'test' is not defined 

我不明白導入錯誤。我已經註釋掉了所有內容,但只有兩行代碼。我在'pages'目錄中有init .py,這不應該很重要,因爲我能夠導入不使用。我曾嘗試更改文件名。儘管在不同的機器上都嘗試過,但都是Debian 6.0。 Python版本2.6.6

任何想法?

回答

0

這很重要,因爲在pages/__init__.py包含from pages import *將導入

+0

我看到的符號。所以通配符並不值得使用,因爲您必須定義要導入的內容?猜猜我會完全跳過它。 – breez 2011-03-21 21:50:59

1

您必須將import test放入pages/__init__.py

只是因爲pages是一個模塊並不意味着它神奇地導入同一文件夾中的所有文件。您仍然必須命名要導入的模塊(或編寫自動導入它們的代碼)。