2012-10-24 71 views
0

我有以下項目框架。無法在Python中導入類

ex47 
    bin/ 
    docs/ 
    ex47/ 
     __init__.py 
    tests/ 
     __init__.py 
     game_tests.py 
    game.py 
    setup.py 

在Aptana Studio上工作。在game_tests.py我

from nose.tools import * 
from ex47.game import Room 

但集錦在我喊不能夠找房,這是我在「game.py」定義爲 類。當我在命令行運行nosetests時,我得到錯誤:導入錯誤(無模塊名爲遊戲)。 什麼似乎是錯誤的?

+0

當你運行它時會得到什麼樣的python traceback? – Eric

+2

頂級ex47目錄中是否有'__init __。py'? – mayhewr

+0

不完全相關,但您可以嘗試PyCharm IDE。有一個免費和開源的版本,在我看來,比Aptana更容易使用,因爲它可以自動處理許多像這樣的問題。特別是你不是最經驗豐富的Python大師,你至少可以開始一些非常複雜的項目。 –

回答

5

我看到兩個問題:

  • 最上面ex47不是有效的軟件包(沒有__init__.py
  • 最上面ex47是不是在你的PYTHONPATH

第一個是顯而易見的。如果你想使用ex47.game可以導入game.py,那麼ex47必須是一個有效的包。所以很可能你想把它放在ex47這是一個有效的包裝?

當涉及到第二個問題時,python會在您的PYTHONPATH和當前目錄(發出命令時所在的目錄)上尋找ex47。可能沒有這種情況,因此無法找到ex47

考慮到上述情況,如果你有以下目錄結構:

ex47 
    bin/ 
    docs/ 
    ex47/ 
     __init__.py 
     game.py 
    tests/ 
     __init__.py 
     game_tests.py 
    setup.py 

,並試圖像這樣運行測試:

nosetests tests 

而在最頂層ex47目錄是它應該工作(注在最上面的ex47內沒有__init__.py)。

+0

如何將ex47設置爲我的PYTHONPATH? – Dombey

+0

在當前會話持續期間'export PYTHONPATH =/path/to/ex47:$ PYTHONPATH'。如果你想在Aptana中使用它,那麼你應該查看項目屬性,有些設置允許你修改PYTHONPATH。 – kgr

+0

以下是Aptana的使用說明 - http://pydev.org/manual_101_project_conf2.html – kgr