2013-08-22 65 views
0

創建通過PyDev在eclipse以下包:日食,蟒蛇,NameError:名字<MyModule>沒有定義

class Repository(object): 
    ''' 
    classdocs 
    ''' 

    def __init__(self): 
     ''' 
     Constructor 
     ''' 
     print("salaam") 

class Materials(Repository): 
    ''' 
    ''' 

    def __init__(self): 
     ''' 
     constructor 
     ''' 

我的主要文件是:

if __name__ == '__main__': 
    pass 

import repository; 


x = Repository(); 

當我運行我的應用程序,我得到以下錯誤:

x = Repository(); 

NameError: name 'Repository' is not defined 

當然,我得到了一個關於導入我的mo獨樂。

我知道我的主要文件和我的包或月食配置的導入和關係有問題。

My <code>dir struct</code> of my <code>project</code>

回答

2

輸入錯誤。

而不是

import repository 

你想要寫你的情況:

from repository.repository import Repository 

至於PyDev的給人錯誤,這是在這一點上正確的,當你解決你的代碼應該停止抱怨。

3

首先,當您導入這樣,你只能引用類的任何repository.Repositoryrepository.repository.Repository,這取決於你的是否導入模塊或組件。

第二,你輸入什麼取決於月食認爲你在哪裏。您可以使用

import os 
print(os.pwd) 

位於主腳本的頂部。

第三,如果你想像這樣導入你的包,你應該把它放在你的搜索路徑中。您可以通過在主腳本的頂部添加

import sys 
import os 
sys.path.append(os.path.abspath(__file__)) 

還做到這一點通過將其放置在網站的包,或者例如,你可能想通過給你的模塊不同的名稱,以避免混淆(或其他方式)

(和一點點挑剔:__init__是不是構造函數,只是一個初始化例程)。

相關問題